SQL Avancé 2010

Post on 03-Jan-2016

48 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

SQL Avancé 2010. Witold Litwin. Quoi & Pourquoi ?. Possibilités Etendues de Manipulation de BDs relationnelles Fondamentales pour l’exploration approfondie Statistiques, prévision de risques, analyse de la tendance… Gestion, Actuariat, ISF…. Exemple canon. SP. S. P. Synonymes. - PowerPoint PPT Presentation

Transcript

1

SQL Avanceacute2010

Witold Litwin

2

Quoi amp Pourquoi

Possibiliteacutes Etendues de Manipulation de BDs relationnelles

Fondamentales pour lrsquoexploration approfondiendash Statistiques preacutevision de risques analyse

de la tendancehellipndash Gestion Actuariat ISFhellip

3

S SNAME STATUS CITYS1 Smith 20 London

S2 Jones 10 Paris

S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

P PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

S P QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

Exemple canon

S

P

SP

4

Synonymes Diffeacuterent de peut ecirctre exprimeacute de trois

maniegraveres= ^= ltgt

ndash Oracle DB2 mais pas MsAccess Type dattribut peut ecirctre exprimeacute de plusieurs

maniegraveres (SQL Oracle)CHAR(n) VARCHAR(n)FLOAT DECIMALNUMBER INTEGER SMALLINTLONG LONG VARCHAR

Types de MsAccess ne sont pas ceux drsquoANSIndash Revoir mon cours SQLQBE de base

5

Noms dattributs Peuvent contenir des blancs

Nom de fournisseur (Oracle) Dans MSAccess

[Nom de fournisseur]lsquorsquoNom de fournisseur rsquorsquo et lsquoNom de

fournisseur rsquo dans constantes clause LIKEhellip Dans SQL Server [ ] impliquent le respect de la

casse En geacuteneacuteral interdits

95Bilan Commence avec un chiffreSELECT Datehellip Mots reacuteserveacutes[AB] et [AB] MsAccess ndash Comment faire si besoin

6

On peut inseacuterer de tuples dans une vue MsAccessndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

Y compris externendash Lien classe ndash sous-classe

ndash Le reacutesultat peut ecirctre lrsquoinsertion simultaneacutee dans plusieurs tables sources de la vue

ndash Le tuple inseacutereacute en QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

7

Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

8

A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

CITY [P] QTY FROM S SP

Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

9

Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

SELECT P Ville FROM P C WHERE PCpostal = CCpostal

Avec

P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

10

Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

A expeacuterimenter sur MsAccess

Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

11

MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

Y compris externendash Lien classe ndash sous-classe

ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

A expeacuterimenter sur les vues SP1 et SP2

12

MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

13

Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

vuendash Toute vue mono-table ou agrave un tuple de la vue

correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

Surprise ndash On insegravere un tuple dans une vue V agrave jointure

INSERT Vhellip

ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

14

MsAccess LeacutegendesMsAccess Leacutegendes

La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

SP

s Product ID qty

s1 p1 300

s1 p2 200

s1 p3 400

s1 p4 200

s1 p5 100

s1 p6 100

s2 p1 300

hellip hellip hellip

15

Expressions de valeur Peuvent ecirctre des attr dynamiques

imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

Une bonne question pour Microsoft

16

Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

les attributs du type texte soit a = 2 et b = 3ndash a+b 23

Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

Il faut la clause Parameters a int b int

17

Pour en savoir + sur les attributs dynamiques

Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

Voir le site du CERIA

18

UNION et Noms Drsquoattributs

SELECT [s] FROM S

Union

SELECT [p] FROM p

Quel nom drsquoattribut sera dans le reacutesultat

Sous MSAccess Dans SQL Server MySQL Oraclehellip

19

UNION et ORDER BY

SELECT [s] FROM S

Union

SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

apregraves le 2egraveme SELECT

20

ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

ORDER BY clauseORDER BY SAL - COMM

Exceptions UNION MINUS INTERSECT

Cette clause peut reacutefeacuterencer lattribut par position

Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

MsAccess

21

ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

une expression qui nest pas dans SELECT clauseSelect S CITY

FROM SORDER BY SNAME STATUS+50

exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

Essayez

SELECT distinct sp[s]

FROM sp

ORDER BY spqty

22

Ordre de prioriteacute dopeacuterations

1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

[e][e]

23

Preacutedicat TOP

SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

SQL Server eacutequivalent de TOP drsquoAccess

SELECT TOP hellip WITH TIES

>

24

Preacutedicat TOP

Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

Pour seacutelectionner les tuples 303132

LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

>

25

Clause BETWEEN

Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

geacuteneacuteriques ndash contrairement agrave LIKE

Quel sera le reacutesultat pour Jones et pourquoi

SELECT FROM S where sname between b and J

Et si on eacutecrit

SELECT FROM S where sname between J and b

ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

26

Limitations de NOT

Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

(SELECT CITY FROM S)

Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

Hypothegravese de Monde ouvert

27

ANY et ALL

All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

(SELECT STATUS FROM S WHERE SNAME = BNP)

si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

(SELECT STATUS FROM S WHERE SNAME = BNP)

28

Injection SQL On ajoute en fraude agrave une requecircte a priori en

restriction une condition qui annule cette restriction

Gros deacutegacircts sur le WEB notammentSELECT

FROM S

WHERE city=london Or True

SQL Injection

S SName Status City

s1 smith Paris

s2 Jones 100 london

s3 Blake 30 Paris

s4 Clark 10 london

s5 Adams 30 Athens

29

Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

SELECT

FROM S

WHERE status= 100 Or 200

SELECT

FROM S

WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

SELECT

FROM S

WHERE city=london Or 100

30

Tabulations Croiseacutees(Crosstab queries Pivot Queries)

Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

BY et les valeurs individuelles en mecircme temps

ndash Impossible avec SQL standard

31

S Total Qty p1 p2 p3 p4 p5 p6

s1 1300 300 200 400 200 100 100

s2 700 300 400

s3 200 200

s4 900 200 300 400

Lintituleacute Total Qty est mis par deacutefaut par MsAccess

Tabulations Croiseacutees

32

Tabulations Croiseacutees(Crosstab queries Pivot Queries)

Transforment les valeurs dattributs en attributsndash Par exemple

les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

les valeurs de P1 P2 sont les QTY (par ex) correspondants

33

S Total Qty p1 p2 p3 p4 p5 p6

s1 1300 300 200 400 200 100 100

s2 700 300 400

s3 200 200

s4 900 200 300 400

Lintituleacute Total Qty est mis par deacutefaut par MsAccess

Tabulations Croiseacutees

34

TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

Tabulations Croiseacutees

Nouvellescolonnes

35

La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

Tabulations Croiseacutees

36

On peut utiliser la clause WHEREWHERE P IN (P1 P2)

Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

Mais cette clause naffecte pas les calculs des agreacutegats

Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

Tabulations Croiseacutees

37

XORSELECT S[S] SStatus SCity

FROM S

WHERE Status=10 Xor city=paris

bull A noter le traitement du nul dans City

38

IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

bull A noter le traitement du nul dans City

39

Sous-requecirctes

A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

sous-requecircte

SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

40

Sous-requecirctes

Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

vite ou Livrerait au moins aussi vite mais en quantiteacute

plus grande

41

Sous-requecirctes

Skylinendash Tout objet non-domineacute (cacheacute

totalement) par un autre

SELECT X[s] X[p] qty delay

FROM SP X

where not exists

(select from SP as Y

where (Yqty gt= XQty and YDelay lt XDelay or

Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

order by X[p]

42

Sous-requecirctes Reacutesultat

s p qty delay

s1 p1 300 15

s4 p1 200 13

s3 p2 400 15

s2 p2 300 12

s1 p3 400 17

s4 p4 300 11

s4 p5 400 7

s1 p6 100 8

s p qty Delay

s1 p1 300 15

s1 p2 200 12

s1 p3 400 17

s1 p4 200 11

s1 p5 100 7

s1 p6 100 8

s2 p2 300 12

s3 p2 400 15

s4 p1 200 13

s4 p2 200 15

s4 p4 300 11

s4 p5 400 7

S

43

Sous-requecirctes

On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

SELECT Count() AS TotalQty

FROM (select distinct qty from sp)

On peut aussi avoir une sous-requecircte dans la clause SELECT

SELECT SP[s] SP[p] qty

(select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

round(qtyTotalQty 3) AS Fraction

FROM SP order by [s]

44

Sous-requecirctes

s p qty TotalQty Fraction

s1 p1 300 1300 0231

s1 p6 100 1300 0077

s1 p5 100 1300 0077

s1 p4 200 1300 0154

s1 p3 400 1300 0308

s1 p2 200 1300 0154

s2 p2 300 300 1

s3 p2 400 400 1

s4 p5 400 1100 0364

s4 p4 300 1100 0273

s4 p2 200 1100 0182

bull ReacutesultatSP

s p qty

s1 p1 300

s1 p2 200

s1 p3 400

s1 p4 200

s1 p5 100

s1 p6 100

s2 p2 300

s3 p2 400

s4 p1 200

s4 p2 200

s4 p4 300

s4 p5 400

45

Sous-requecirctesbull En Mode Graphique

s p qtyTotalQty

Fraction

s1 p1 300 1300 0231

s1 p6 100 1300 0077

s1 p5 100 1300 0077

s1 p4 200 1300 0154

s1 p3 400 1300 0308

s1 p2 200 1300 0154

s2 p2 300 300 1

s3 p2 400 400 1

s4 p5 400 1100 0364

s4 p4 300 1100 0273

s4 p2 200 1100 0182

46

Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

SELECT (select count(qty) from SP

where qty gt= [seuil svp ]) count() as reacutesultat

FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

probabiliteacute conditionnelle

47

Clause FROM imbriqueacutee

Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

Select attrshellipFROM [tbls] (SQL-Select) Where hellip

Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

Agrave essayer

48

Clause FROM imbriqueacuteePossibiliteacutes

ndash Agreacutegations par-dessus UNION ou UNION ALL

ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

MsAccess

ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

Mais la reacutefeacuterence au nom de la requecircte OK

49

Clause FROM imbriqueacutee

SELECT sum(weight) AS [poids-total]

FROM (SELECT weight pcity FROM P WHERE City like l

UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

50

Clause FROM imbriqueacutee

select avg(moy1) as [moyenne-des-moyennes]

FROM

(SELECT avg(weight) as moy1 FROM P WHERE City like l

UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

51

Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

52

Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

totaux partiels et total geacuteneacuteral

total_Id TotalQty

s1 1300

s2 300

s3 400

s4 400

total Geacuteneacuteral

2400

53

Valeurs nulles

Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

Non WHERE HAVING GROUP BY (rel 1)

Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

MsAccess Oui DISTINCT Autres clauses

54

Valeurs nulles Si x est nul et y nrsquoest pas alors

1 x gt y est vrai ou faux

2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

SELECT FROM S WHERE CITY =Paris

UNION

SELECT FROM S WHERE NOT CITY = Paris

est toujours pourquoi faire simpleSELECT FROM S

si on peut faire compliqueacute

55

Valeurs nullesValeurs nulles

SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

56

Valeurs nulles

Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

LOG (nul) -gt Error A voir cas par cas

57

Fonctions Scalaires DateTemps

SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

FROM S Une erreur de calcul du nom du jour de la semaine existe en version

franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

58

Fonctions Scalaires DateTemps

SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

weekday(day(now())-1) AS [day]FROM S

bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

59

Fonctions Scalaires DateTemps

DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

Interval Explanation

Yyyy Year

q Quarter

m Month

y Day of year

d Day

w Weekday

ww Week

h Hour

n Minute

s Second

60

Fonctions Scalaires DateTemps

SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

Test DateDiff

now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

61

Fonctions Scalaires DateTemps

bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

Liste tous les tuples ougrave DateV est de Janvier 2009

hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

62

Fonction Scalaire RND

bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

FROM SPORDER BY rnd(qty) DESC

echantillon s rank

s1 502628087997437E-02

s4 0518015921115875

s3 075702953338623

63

Fonction Scalaire RND

bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

FROM SPORDER BY rnd(qty) DESC

OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

Votre commentaire ici

64

Fonctions Financiegraveres

Fonction DDB Calcule lamortissement deacutegressif

pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

65

Fonctions Financiegraveres

Fonction DDB Calcule lamortissement deacutegressif

pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

66

Fonction DDB

insert into DDB (cost salvage life factor amortiss period)

select 100 as cost 70 as salvage 5 as life 1 as factor

DDB(cost salvage life period factor) as amortiss period

Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

67

Fonction DDB

INSERT INTO DDB ( cost salvage life factor amortiss period )

SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

DDB(costsalvagelifeperiodfactor) AS amortiss period

Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

68

Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

nombres neacutegatifs

Fonction PMT

69

Fonction PMT

SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

Fonction PMT calcul dannuiteacute demprunt

Annuiteacutee taux_annuel nbre_anneacuteesvaleur

preacutesentevaleur_payeacutee surprime

-16049 005 20 200000 -320980 -120980

70

Placement agrave taux variable Somme et Fin sont les paramegravetres

ndash Expression indirecte de lrsquoagreacutegat PRODUCT

SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

Et les nuls que log ne supporte pas

Anneacutee relative

Taux

1 4

2 4

3 3

4 5

5 5

Voir + dans le livre laquo SQL Design Patterns raquo

71

GROUP BY Est une clause redondante avec le SELECT agrave sous-

requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

est eacutequivalente agrave

SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

WHERE XP = SPP) FROM SP

Testez

Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

72

LIST Function La requecircte

SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

Comme les tabulations croiseacutees

ndash Mais en + simple

LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

ndash En mono attribut (2004)

En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

sous-formulaires

73

LIST Function

Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

74

GROUP BY avec WHERE

Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

75

GROUP BY

Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

Pourquoi

76

GROUP BY avec HAVING

La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

77

T-GROUP BY Proposeacute pour SQL

Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

Le rocircle de -join par rapport agrave equi-join

Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

INT(AVG(QTY)) AS QTY2FROM SP

T-GROUP (QT1 BY P QT2 BY ltgt P)

donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

78

T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

(SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

FROM SP Vrai ou Faux

79

T-GROUP BY

Reacutesultat

part avg_qty_other_parts part_avg_qty

p1 250 300

p2 262 250

p3 245 400

p4 260 250

p5 260 250

p6 272 100

80

T-GROUP BY

En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

81

Rangs Non-Denses(Non Dense Ranking)

SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

s p qtyND-rank

s4 p5 400 1

s3 p2 400 1

s1 p3 400 1

s4 p4 300 4

s2 p2 300 4

s1 p1 300 4

s4 p2 200 7

s1 p4 200 7

s1 p2 200 7

s4 p1 200 7

s1 p6 100 11

s1 p5 100 11

82

Rangs Non-Denses(Graphique MsAccess)

s p qty ND-rank

s4 p5 400 1

s3 p2 400 1

s1 p3 400 1

s4 p4 300 4

s2 p2 300 4

s1 p1 300 4

s4 p2 200 7

s1 p4 200 7

s1 p2 200 7

s4 p1 200 7

s1 p6 100 11

s1 p5 100 11

83

Rangs Denses(Dense Ranking)

SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

s p qtyD-rank

s1 p3 400 1

s3 p2 400 1

s4 p5 400 1

s1 p1 300 2

s2 p2 300 2

s4 p4 300 2

s1 p4 200 3

s1 p2 200 3

s4 p2 200 3

s4 p1 200 3

s1 p6 100 4

s1 p5 100 4

84

Rangs DensesGraphique MsAccess

s p qty D-rank

s1 p3 400 1

s3 p2 400 1

s4 p5 400 1

s1 p1 300 2

s2 p2 300 2

s4 p4 300 2

s1 p4 200 3

s1 p2 200 3

s4 p2 200 3

s4 p1 200 3

s1 p6 100 4

s1 p5 100 4

85

Distribution

La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

86

Reacutesultat

s Distribution

s1 0419

s2 0097

s3 0129

s4 0355

87

Distribution Cumulative

La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

FROM SP

ORDER BY SP[s]

88

Reacutesultat

sDistribution Cumuleacutee

s1 0419

s2 0516

s3 0645

s4 1

89

Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

- Un outil - Fonction scalaire IIF de SQL Access

- VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

- On peut alternativement utiliser UNION ou UNION ALL

90

CateacutegorisationSELECT S[S] SSName SStatus SCity

IIf([status]lt30OKgood) AS IIfSimple

IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

FROM S

GROUP BY S[S] SSName SStatus SCity

IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

s1 Smith Paris good good

s2 Jones 100 london good VGood

s3 Blake 30 Paris good good

s4 Clark 10 london OK OK

s5 Adams 30 Athens good good

bull Notez le traitement du null

91

Cateacutegorisation Emploi alternatif drsquoUNION

SELECT Ppname weight Very Heavy as Warning

FROM P where weight gt 13

union

select Ppname weight Quite Heavy as w from p where weight between 10 and 16

UNION

select Ppname weight Light as warn from p where weight lt 10

ORDER BY warning DESC weight DESC

pname weight Warning

cam 19 Very Heavy

cog 19 Very Heavy

bolt 17 Very Heavy

nut 14 Very Heavy

screw 14 Very Heavy

nut 14 Quite Heavy

screw 14 Quite Heavy

screw 12 Quite Heavy

bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

92

UNIONPreacutedictions de Valeurs Inconnues

On considegravere AVG(Qty1) pour Qty

SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

SP

s p qtyQty1

s1 p1 300 400

s1 p2 200

s1 p3 400 600

s1 p4 200 300

s1 p5 100

s1 p6 100 200

s2 p2 300 500

s3 p2 400

s4 p1 200 100

s4 p2 200

s4 p4 300

s4 p5 400

93

UNIONPreacutediction de Valeurs Inconnues

On peut compleacuteter SP par UPDATE SPReacutesultat

SP

s p qtyQty1

s1 p1 300 400

s1 p2 200

s1 p3 400 600

s1 p4 200 300

s1 p5 100

s1 p6 100 200

s2 p2 300 500

s3 p2 400

s4 p1 200 100

s4 p2 200

s4 p4 300

s4 p5 400

qty for partpredicted or

unknown Qty1

100 p5

100 predicted value 200

200 p2

200 predicted value 200

300 p4

300 predicted value 450

400 p2

400 p5

400 predicted value 600

94

Tendance

qty Qty1

100 200

200 300

300 400

400 600

SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

SP est supposeacute avec la DF entre Qty et Qty1

Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

Graph 3D avec Qty en abscisses

95

Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

30102008 120 27102008 4

25102008 131 22102008 4

23102008 127 20102008 4

17102008 269 14102008 4

15102008 60 12102008 4

11102008 295 08102008 4

09102008 340 06102008 4

08102008 324 05102008 4

06102008 315 03102008 4

96

Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

Graphique avec une info-bulle

97

Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

glissantes

bull CSUM (Cumulative (Running) Sums)

bull MAVG

bull MSUM

bull MDIFF

bull Voir Teradata + loin

98

Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

On veut voir aussi le gain que T2 offrirait par rapport au T1

99

Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

Entiers est une table aux avec la colonne de12hellip10

100

Seacuteries financiegraveres

capital taux nval apregraves n ans

taux1val1 apregraves n ans

GainAbs GainRel

100 005 1 105 006 106 1 1

100 005 2 110 006 112 2 2

100 005 3 115 006 119 4 4

100 005 4 121 006 126 5 5

100 005 5 127 006 133 6 6

100 005 6 134 006 141 7 7

100 005 7 140 006 150 10 10

100 005 8 147 006 159 12 12

100 005 9 155 006 168 13 13

100 005 10 162 006 179 17 17

100 005 11 171 006 189 18 18

100 005 12 179 006 201 22 22

100 005 13 188 006 213 25 25

100 005 14 197 006 226 29 29

100 005 15 207 006 239 32 32

100 005 16 218 006 254 36 36

100 005 17 229 006 269 40 40

100 005 18 240 006 285 45 45

100 005 19 252 006 302 50 50

100 005 20 265 006 320 55 55

101

Seacuteries financiegraveres

102

Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

financiers de la table Produits

bull Dans la limite L de la somme donneacutee

bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

bull En ordre descendant de prix

bull On peut choisir un mecircme produit plusieurs fois pour former une collection

bull Plusieurs actionshellip

103

Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

P prix

p3 200

p1 200

p2 400

p3 200

p4 100

p6 100

p5 300

p8 300

p7 400

p10 200

p12 300

p13 300

104

Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

ORDER BY 4 desc 8 123

105

Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

106

Creacuteation drsquoun Portefeuille Discussion

Creacuteation drsquoun Portefeuille Discussion

bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

107

Creacuteation drsquoun Portefeuille Discussion

Creacuteation drsquoun Portefeuille Discussion

bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

108

ROLLUP(DB2 amp SQL-Server)

ROLLUP(DB2 amp SQL-Server)

Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

109

CUBE(DB2 amp SQL-Server)

CUBE(DB2 amp SQL-Server)

Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

110

GROUPING SETS

On indique explicitement les groupesndash entre ()

le groupe () est constitueacute de toute la table

SELECT p sum (qty) as tot-qty from SSP P

WHERE SP P = PP AND SP S = SS

GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

HAVING tot-qty gt 100

Problegravemes avec des nuls que lrsquoon verra plus tard

111

Rollup Cube Grouping Setssous MsAccess

Il y en a pas On peut simuler ces manipulations en

utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

Peut ecirctre laborieux pour le CUBE

112

ROLLUP

Remarquez le laquo null as cityraquo

113

ROLLUP

114

ROLLUP

Et le CUBE

Une solution pour l ambiguiumlteacute

de certains nuls

115

Autres Opeacuterations Utiles Chasse aux valeurs inconnues

ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

Wiley (publ)

116

Sous-Tables Parameacutetreacutees

La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

117

Sous-Tables Parameacutetreacutees

Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

118

Sous-Tables Parameacutetreacutees

119

Sous-Tables Parameacutetreacutees

120

Sous-Tables Parameacutetreacutees

121

Sous-Tables Parameacutetreacutees

122

Sous-Tables Parameacutetreacutees

La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

123

Sous-Tables Parameacutetreacutees

Exeacutecution autonome

124

Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

ecirctre choisi que dans une ville drsquoun client de Northwind

Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

hellip

125

Liste de Choix Multibase

bull Requecircte Test-liste-de-choix mdb

SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

126

Liste de Choix MultibaseReacutesultat

On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

Tregraves bonne question agrave Microsoft

148

FIN

149

  • SQL Avanceacute 2010
  • Quoi amp Pourquoi
  • Slide 3
  • Synonymes
  • Noms dattributs
  • Slide 6
  • Slide 7
  • Slide 8
  • Insertion dans une Vue
  • Insertion dans une Vue (2)
  • MAJ drsquoune Vue MsAccess
  • MAJ drsquoune Vue MsAccess (2)
  • Suppression dans une Vue MsAccess
  • MsAccess Leacutegendes
  • Expressions de valeur
  • Expressions de valeur (2)
  • Pour en savoir + sur les attributs dynamiques
  • UNION et Noms Drsquoattributs
  • UNION et ORDER BY
  • ORDER BY et expressions de valeur
  • ORDER BY et expressions de valeur (2)
  • Ordre de prioriteacute dopeacuterations
  • Preacutedicat TOP
  • Preacutedicat TOP (2)
  • Clause BETWEEN
  • Limitations de NOT
  • ANY et ALL
  • Injection SQL
  • Injection SQL (2)
  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
  • Tabulations Croiseacutees
  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
  • Tabulations Croiseacutees (2)
  • Tabulations Croiseacutees (3)
  • Tabulations Croiseacutees (4)
  • Tabulations Croiseacutees (5)
  • XOR
  • IMP
  • Sous-requecirctes
  • Sous-requecirctes (2)
  • Sous-requecirctes (3)
  • Sous-requecirctes (4)
  • Sous-requecirctes (5)
  • Sous-requecirctes (6)
  • Sous-requecirctes (7)
  • Application aux Probabiliteacutes
  • Clause FROM imbriqueacutee
  • Clause FROM imbriqueacutee (2)
  • Clause FROM imbriqueacutee (3)
  • Clause FROM imbriqueacutee (4)
  • Clause FROM imbriqueacutee (5)
  • Clause FROM imbriqueacutee (6)
  • Valeurs nulles
  • Valeurs nulles (2)
  • Valeurs nulles (3)
  • Valeurs nulles (4)
  • Fonctions Scalaires DateTemps
  • Fonctions Scalaires DateTemps (2)
  • Fonctions Scalaires DateTemps (3)
  • Fonctions Scalaires DateTemps (4)
  • Fonctions Scalaires DateTemps (5)
  • Fonction Scalaire RND
  • Fonction Scalaire RND (2)
  • Fonctions Financiegraveres
  • Fonctions Financiegraveres (2)
  • Fonction DDB
  • Fonction DDB (2)
  • Fonction PMT
  • Fonction PMT (2)
  • Placement agrave taux variable
  • GROUP BY
  • LIST Function
  • LIST Function (2)
  • GROUP BY avec WHERE
  • GROUP BY (2)
  • GROUP BY avec HAVING
  • T-GROUP BY
  • T-GROUP BY (2)
  • T-GROUP BY (3)
  • T-GROUP BY (4)
  • Rangs Non-Denses (Non Dense Ranking)
  • Rangs Non-Denses (Graphique MsAccess)
  • Rangs Denses (Dense Ranking)
  • Rangs Denses Graphique MsAccess
  • Distribution
  • Reacutesultat
  • Distribution Cumulative
  • Reacutesultat (2)
  • Cateacutegorisation
  • Cateacutegorisation (2)
  • Cateacutegorisation (3)
  • UNION Preacutedictions de Valeurs Inconnues
  • UNION Preacutediction de Valeurs Inconnues
  • Tendance
  • Moyenne Glissante
  • Moyenne Glissante (2)
  • Moyenne Glissante (3)
  • Seacuteries financiegraveres
  • Seacuteries financiegraveres (2)
  • Seacuteries financiegraveres (3)
  • Seacuteries financiegraveres (4)
  • Creacuteation drsquoun Portefeuille
  • Creacuteation drsquoun Portefeuille (2)
  • Creacuteation drsquoun Portefeuille (3)
  • Creacuteation drsquoun Portefeuille (4)
  • Creacuteation drsquoun Portefeuille Discussion
  • Creacuteation drsquoun Portefeuille Discussion (2)
  • ROLLUP (DB2 amp SQL-Server)
  • CUBE (DB2 amp SQL-Server)
  • GROUPING SETS
  • Rollup Cube Grouping Sets sous MsAccess
  • Slide 112
  • Slide 113
  • Slide 114
  • Autres Opeacuterations Utiles
  • Sous-Tables Parameacutetreacutees
  • Sous-Tables Parameacutetreacutees (2)
  • Sous-Tables Parameacutetreacutees (3)
  • Sous-Tables Parameacutetreacutees (4)
  • Sous-Tables Parameacutetreacutees (5)
  • Sous-Tables Parameacutetreacutees (6)
  • Sous-Tables Parameacutetreacutees (7)
  • Sous-Tables Parameacutetreacutees (8)
  • Liste de Choix Multibase
  • Liste de Choix Multibase (2)
  • Liste de Choix Multibase Reacutesultat
  • FIN
  • Slide 149

    2

    Quoi amp Pourquoi

    Possibiliteacutes Etendues de Manipulation de BDs relationnelles

    Fondamentales pour lrsquoexploration approfondiendash Statistiques preacutevision de risques analyse

    de la tendancehellipndash Gestion Actuariat ISFhellip

    3

    S SNAME STATUS CITYS1 Smith 20 London

    S2 Jones 10 Paris

    S3 Blake 30 Paris

    S4 Clark 20 London

    S5 Adams 30 Athens

    P PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

    P2 Bolt Green 17 Paris

    P3 Screw Blue 14 Rome

    P4 Screw Red 12 London

    P5 Cam Blue 19 Paris

    P6 Cog Red 19 London

    S P QTYS1 P1 300

    S1 P2 200

    S1 P3 400

    S1 P4 200

    S1 P5 100

    S1 P6 100

    S2 P1 300

    S2 P2 400

    S3 P2 200

    S4 P2 200

    S4 P4 300

    S4 P5 400

    Exemple canon

    S

    P

    SP

    4

    Synonymes Diffeacuterent de peut ecirctre exprimeacute de trois

    maniegraveres= ^= ltgt

    ndash Oracle DB2 mais pas MsAccess Type dattribut peut ecirctre exprimeacute de plusieurs

    maniegraveres (SQL Oracle)CHAR(n) VARCHAR(n)FLOAT DECIMALNUMBER INTEGER SMALLINTLONG LONG VARCHAR

    Types de MsAccess ne sont pas ceux drsquoANSIndash Revoir mon cours SQLQBE de base

    5

    Noms dattributs Peuvent contenir des blancs

    Nom de fournisseur (Oracle) Dans MSAccess

    [Nom de fournisseur]lsquorsquoNom de fournisseur rsquorsquo et lsquoNom de

    fournisseur rsquo dans constantes clause LIKEhellip Dans SQL Server [ ] impliquent le respect de la

    casse En geacuteneacuteral interdits

    95Bilan Commence avec un chiffreSELECT Datehellip Mots reacuteserveacutes[AB] et [AB] MsAccess ndash Comment faire si besoin

    6

    On peut inseacuterer de tuples dans une vue MsAccessndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

    Y compris externendash Lien classe ndash sous-classe

    ndash Le reacutesultat peut ecirctre lrsquoinsertion simultaneacutee dans plusieurs tables sources de la vue

    ndash Le tuple inseacutereacute en QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

    Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

    7

    Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

    Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

    Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

    8

    A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

    CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

    CITY [P] QTY FROM S SP

    Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

    9

    Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

    une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

    SELECT P Ville FROM P C WHERE PCpostal = CCpostal

    Avec

    P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

    Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

    10

    Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

    attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

    Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

    A expeacuterimenter sur MsAccess

    Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

    11

    MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

    ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

    Y compris externendash Lien classe ndash sous-classe

    ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

    A expeacuterimenter sur les vues SP1 et SP2

    12

    MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

    QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

    avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

    valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

    13

    Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

    vuendash Toute vue mono-table ou agrave un tuple de la vue

    correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

    Surprise ndash On insegravere un tuple dans une vue V agrave jointure

    INSERT Vhellip

    ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

    14

    MsAccess LeacutegendesMsAccess Leacutegendes

    La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

    Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

    SP

    s Product ID qty

    s1 p1 300

    s1 p2 200

    s1 p3 400

    s1 p4 200

    s1 p5 100

    s1 p6 100

    s2 p1 300

    hellip hellip hellip

    15

    Expressions de valeur Peuvent ecirctre des attr dynamiques

    imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

    Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

    SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

    Une bonne question pour Microsoft

    16

    Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

    reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

    vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

    les attributs du type texte soit a = 2 et b = 3ndash a+b 23

    Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

    Il faut la clause Parameters a int b int

    17

    Pour en savoir + sur les attributs dynamiques

    Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

    Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

    Voir le site du CERIA

    18

    UNION et Noms Drsquoattributs

    SELECT [s] FROM S

    Union

    SELECT [p] FROM p

    Quel nom drsquoattribut sera dans le reacutesultat

    Sous MSAccess Dans SQL Server MySQL Oraclehellip

    19

    UNION et ORDER BY

    SELECT [s] FROM S

    Union

    SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

    les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

    Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

    apregraves le 2egraveme SELECT

    20

    ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

    ORDER BY clauseORDER BY SAL - COMM

    Exceptions UNION MINUS INTERSECT

    Cette clause peut reacutefeacuterencer lattribut par position

    Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

    Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

    MsAccess

    21

    ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

    une expression qui nest pas dans SELECT clauseSelect S CITY

    FROM SORDER BY SNAME STATUS+50

    exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

    Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

    Essayez

    SELECT distinct sp[s]

    FROM sp

    ORDER BY spqty

    22

    Ordre de prioriteacute dopeacuterations

    1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

    2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

    [e][e]

    23

    Preacutedicat TOP

    SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

    SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

    SQL Server eacutequivalent de TOP drsquoAccess

    SELECT TOP hellip WITH TIES

    >

    24

    Preacutedicat TOP

    Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

    La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

    Pour seacutelectionner les tuples 303132

    LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

    Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

    >

    25

    Clause BETWEEN

    Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

    geacuteneacuteriques ndash contrairement agrave LIKE

    Quel sera le reacutesultat pour Jones et pourquoi

    SELECT FROM S where sname between b and J

    Et si on eacutecrit

    SELECT FROM S where sname between J and b

    ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

    26

    Limitations de NOT

    Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

    (SELECT CITY FROM S)

    Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

    Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

    Hypothegravese de Monde ouvert

    27

    ANY et ALL

    All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

    (SELECT STATUS FROM S WHERE SNAME = BNP)

    si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

    si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

    Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

    (SELECT STATUS FROM S WHERE SNAME = BNP)

    28

    Injection SQL On ajoute en fraude agrave une requecircte a priori en

    restriction une condition qui annule cette restriction

    Gros deacutegacircts sur le WEB notammentSELECT

    FROM S

    WHERE city=london Or True

    SQL Injection

    S SName Status City

    s1 smith Paris

    s2 Jones 100 london

    s3 Blake 30 Paris

    s4 Clark 10 london

    s5 Adams 30 Athens

    29

    Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

    True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

    SELECT

    FROM S

    WHERE status= 100 Or 200

    SELECT

    FROM S

    WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

    SELECT

    FROM S

    WHERE city=london Or 100

    30

    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

    Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

    BY et les valeurs individuelles en mecircme temps

    ndash Impossible avec SQL standard

    31

    S Total Qty p1 p2 p3 p4 p5 p6

    s1 1300 300 200 400 200 100 100

    s2 700 300 400

    s3 200 200

    s4 900 200 300 400

    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

    Tabulations Croiseacutees

    32

    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

    Transforment les valeurs dattributs en attributsndash Par exemple

    les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

    les valeurs de P1 P2 sont les QTY (par ex) correspondants

    33

    S Total Qty p1 p2 p3 p4 p5 p6

    s1 1300 300 200 400 200 100 100

    s2 700 300 400

    s3 200 200

    s4 900 200 300 400

    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

    Tabulations Croiseacutees

    34

    TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

    Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

    Tabulations Croiseacutees

    Nouvellescolonnes

    35

    La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

    On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

    Tabulations Croiseacutees

    36

    On peut utiliser la clause WHEREWHERE P IN (P1 P2)

    Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

    On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

    Mais cette clause naffecte pas les calculs des agreacutegats

    Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

    Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

    Tabulations Croiseacutees

    37

    XORSELECT S[S] SStatus SCity

    FROM S

    WHERE Status=10 Xor city=paris

    bull A noter le traitement du nul dans City

    38

    IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

    bull A noter le traitement du nul dans City

    39

    Sous-requecirctes

    A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

    clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

    rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

    sous-requecircte

    SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

    40

    Sous-requecirctes

    Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

    laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

    vite ou Livrerait au moins aussi vite mais en quantiteacute

    plus grande

    41

    Sous-requecirctes

    Skylinendash Tout objet non-domineacute (cacheacute

    totalement) par un autre

    SELECT X[s] X[p] qty delay

    FROM SP X

    where not exists

    (select from SP as Y

    where (Yqty gt= XQty and YDelay lt XDelay or

    Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

    order by X[p]

    42

    Sous-requecirctes Reacutesultat

    s p qty delay

    s1 p1 300 15

    s4 p1 200 13

    s3 p2 400 15

    s2 p2 300 12

    s1 p3 400 17

    s4 p4 300 11

    s4 p5 400 7

    s1 p6 100 8

    s p qty Delay

    s1 p1 300 15

    s1 p2 200 12

    s1 p3 400 17

    s1 p4 200 11

    s1 p5 100 7

    s1 p6 100 8

    s2 p2 300 12

    s3 p2 400 15

    s4 p1 200 13

    s4 p2 200 15

    s4 p4 300 11

    s4 p5 400 7

    S

    43

    Sous-requecirctes

    On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

    SELECT Count() AS TotalQty

    FROM (select distinct qty from sp)

    On peut aussi avoir une sous-requecircte dans la clause SELECT

    SELECT SP[s] SP[p] qty

    (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

    round(qtyTotalQty 3) AS Fraction

    FROM SP order by [s]

    44

    Sous-requecirctes

    s p qty TotalQty Fraction

    s1 p1 300 1300 0231

    s1 p6 100 1300 0077

    s1 p5 100 1300 0077

    s1 p4 200 1300 0154

    s1 p3 400 1300 0308

    s1 p2 200 1300 0154

    s2 p2 300 300 1

    s3 p2 400 400 1

    s4 p5 400 1100 0364

    s4 p4 300 1100 0273

    s4 p2 200 1100 0182

    bull ReacutesultatSP

    s p qty

    s1 p1 300

    s1 p2 200

    s1 p3 400

    s1 p4 200

    s1 p5 100

    s1 p6 100

    s2 p2 300

    s3 p2 400

    s4 p1 200

    s4 p2 200

    s4 p4 300

    s4 p5 400

    45

    Sous-requecirctesbull En Mode Graphique

    s p qtyTotalQty

    Fraction

    s1 p1 300 1300 0231

    s1 p6 100 1300 0077

    s1 p5 100 1300 0077

    s1 p4 200 1300 0154

    s1 p3 400 1300 0308

    s1 p2 200 1300 0154

    s2 p2 300 300 1

    s3 p2 400 400 1

    s4 p5 400 1100 0364

    s4 p4 300 1100 0273

    s4 p2 200 1100 0182

    46

    Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

    SELECT (select count(qty) from SP

    where qty gt= [seuil svp ]) count() as reacutesultat

    FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

    probabiliteacute conditionnelle

    47

    Clause FROM imbriqueacutee

    Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

    Select attrshellipFROM [tbls] (SQL-Select) Where hellip

    Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

    Agrave essayer

    48

    Clause FROM imbriqueacuteePossibiliteacutes

    ndash Agreacutegations par-dessus UNION ou UNION ALL

    ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

    MsAccess

    ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

    Mais la reacutefeacuterence au nom de la requecircte OK

    49

    Clause FROM imbriqueacutee

    SELECT sum(weight) AS [poids-total]

    FROM (SELECT weight pcity FROM P WHERE City like l

    UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

    50

    Clause FROM imbriqueacutee

    select avg(moy1) as [moyenne-des-moyennes]

    FROM

    (SELECT avg(weight) as moy1 FROM P WHERE City like l

    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

    51

    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

    52

    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

    totaux partiels et total geacuteneacuteral

    total_Id TotalQty

    s1 1300

    s2 300

    s3 400

    s4 400

    total Geacuteneacuteral

    2400

    53

    Valeurs nulles

    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

    Non WHERE HAVING GROUP BY (rel 1)

    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

    MsAccess Oui DISTINCT Autres clauses

    54

    Valeurs nulles Si x est nul et y nrsquoest pas alors

    1 x gt y est vrai ou faux

    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

    SELECT FROM S WHERE CITY =Paris

    UNION

    SELECT FROM S WHERE NOT CITY = Paris

    est toujours pourquoi faire simpleSELECT FROM S

    si on peut faire compliqueacute

    55

    Valeurs nullesValeurs nulles

    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

    56

    Valeurs nulles

    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

    LOG (nul) -gt Error A voir cas par cas

    57

    Fonctions Scalaires DateTemps

    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

    58

    Fonctions Scalaires DateTemps

    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

    weekday(day(now())-1) AS [day]FROM S

    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

    59

    Fonctions Scalaires DateTemps

    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

    Interval Explanation

    Yyyy Year

    q Quarter

    m Month

    y Day of year

    d Day

    w Weekday

    ww Week

    h Hour

    n Minute

    s Second

    60

    Fonctions Scalaires DateTemps

    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

    Test DateDiff

    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

    61

    Fonctions Scalaires DateTemps

    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

    Liste tous les tuples ougrave DateV est de Janvier 2009

    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

    62

    Fonction Scalaire RND

    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

    FROM SPORDER BY rnd(qty) DESC

    echantillon s rank

    s1 502628087997437E-02

    s4 0518015921115875

    s3 075702953338623

    63

    Fonction Scalaire RND

    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

    FROM SPORDER BY rnd(qty) DESC

    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

    Votre commentaire ici

    64

    Fonctions Financiegraveres

    Fonction DDB Calcule lamortissement deacutegressif

    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

    65

    Fonctions Financiegraveres

    Fonction DDB Calcule lamortissement deacutegressif

    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

    66

    Fonction DDB

    insert into DDB (cost salvage life factor amortiss period)

    select 100 as cost 70 as salvage 5 as life 1 as factor

    DDB(cost salvage life period factor) as amortiss period

    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

    67

    Fonction DDB

    INSERT INTO DDB ( cost salvage life factor amortiss period )

    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

    DDB(costsalvagelifeperiodfactor) AS amortiss period

    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

    68

    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

    nombres neacutegatifs

    Fonction PMT

    69

    Fonction PMT

    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

    Fonction PMT calcul dannuiteacute demprunt

    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

    preacutesentevaleur_payeacutee surprime

    -16049 005 20 200000 -320980 -120980

    70

    Placement agrave taux variable Somme et Fin sont les paramegravetres

    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

    Et les nuls que log ne supporte pas

    Anneacutee relative

    Taux

    1 4

    2 4

    3 3

    4 5

    5 5

    Voir + dans le livre laquo SQL Design Patterns raquo

    71

    GROUP BY Est une clause redondante avec le SELECT agrave sous-

    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

    est eacutequivalente agrave

    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

    WHERE XP = SPP) FROM SP

    Testez

    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

    72

    LIST Function La requecircte

    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

    Comme les tabulations croiseacutees

    ndash Mais en + simple

    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

    ndash En mono attribut (2004)

    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

    sous-formulaires

    73

    LIST Function

    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

    74

    GROUP BY avec WHERE

    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

    75

    GROUP BY

    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

    Pourquoi

    76

    GROUP BY avec HAVING

    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

    77

    T-GROUP BY Proposeacute pour SQL

    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

    Le rocircle de -join par rapport agrave equi-join

    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

    INT(AVG(QTY)) AS QTY2FROM SP

    T-GROUP (QT1 BY P QT2 BY ltgt P)

    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

    78

    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

    FROM SP Vrai ou Faux

    79

    T-GROUP BY

    Reacutesultat

    part avg_qty_other_parts part_avg_qty

    p1 250 300

    p2 262 250

    p3 245 400

    p4 260 250

    p5 260 250

    p6 272 100

    80

    T-GROUP BY

    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

    81

    Rangs Non-Denses(Non Dense Ranking)

    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

    s p qtyND-rank

    s4 p5 400 1

    s3 p2 400 1

    s1 p3 400 1

    s4 p4 300 4

    s2 p2 300 4

    s1 p1 300 4

    s4 p2 200 7

    s1 p4 200 7

    s1 p2 200 7

    s4 p1 200 7

    s1 p6 100 11

    s1 p5 100 11

    82

    Rangs Non-Denses(Graphique MsAccess)

    s p qty ND-rank

    s4 p5 400 1

    s3 p2 400 1

    s1 p3 400 1

    s4 p4 300 4

    s2 p2 300 4

    s1 p1 300 4

    s4 p2 200 7

    s1 p4 200 7

    s1 p2 200 7

    s4 p1 200 7

    s1 p6 100 11

    s1 p5 100 11

    83

    Rangs Denses(Dense Ranking)

    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

    s p qtyD-rank

    s1 p3 400 1

    s3 p2 400 1

    s4 p5 400 1

    s1 p1 300 2

    s2 p2 300 2

    s4 p4 300 2

    s1 p4 200 3

    s1 p2 200 3

    s4 p2 200 3

    s4 p1 200 3

    s1 p6 100 4

    s1 p5 100 4

    84

    Rangs DensesGraphique MsAccess

    s p qty D-rank

    s1 p3 400 1

    s3 p2 400 1

    s4 p5 400 1

    s1 p1 300 2

    s2 p2 300 2

    s4 p4 300 2

    s1 p4 200 3

    s1 p2 200 3

    s4 p2 200 3

    s4 p1 200 3

    s1 p6 100 4

    s1 p5 100 4

    85

    Distribution

    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

    86

    Reacutesultat

    s Distribution

    s1 0419

    s2 0097

    s3 0129

    s4 0355

    87

    Distribution Cumulative

    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

    FROM SP

    ORDER BY SP[s]

    88

    Reacutesultat

    sDistribution Cumuleacutee

    s1 0419

    s2 0516

    s3 0645

    s4 1

    89

    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

    - Un outil - Fonction scalaire IIF de SQL Access

    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

    - On peut alternativement utiliser UNION ou UNION ALL

    90

    CateacutegorisationSELECT S[S] SSName SStatus SCity

    IIf([status]lt30OKgood) AS IIfSimple

    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

    FROM S

    GROUP BY S[S] SSName SStatus SCity

    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

    s1 Smith Paris good good

    s2 Jones 100 london good VGood

    s3 Blake 30 Paris good good

    s4 Clark 10 london OK OK

    s5 Adams 30 Athens good good

    bull Notez le traitement du null

    91

    Cateacutegorisation Emploi alternatif drsquoUNION

    SELECT Ppname weight Very Heavy as Warning

    FROM P where weight gt 13

    union

    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

    UNION

    select Ppname weight Light as warn from p where weight lt 10

    ORDER BY warning DESC weight DESC

    pname weight Warning

    cam 19 Very Heavy

    cog 19 Very Heavy

    bolt 17 Very Heavy

    nut 14 Very Heavy

    screw 14 Very Heavy

    nut 14 Quite Heavy

    screw 14 Quite Heavy

    screw 12 Quite Heavy

    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

    92

    UNIONPreacutedictions de Valeurs Inconnues

    On considegravere AVG(Qty1) pour Qty

    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

    SP

    s p qtyQty1

    s1 p1 300 400

    s1 p2 200

    s1 p3 400 600

    s1 p4 200 300

    s1 p5 100

    s1 p6 100 200

    s2 p2 300 500

    s3 p2 400

    s4 p1 200 100

    s4 p2 200

    s4 p4 300

    s4 p5 400

    93

    UNIONPreacutediction de Valeurs Inconnues

    On peut compleacuteter SP par UPDATE SPReacutesultat

    SP

    s p qtyQty1

    s1 p1 300 400

    s1 p2 200

    s1 p3 400 600

    s1 p4 200 300

    s1 p5 100

    s1 p6 100 200

    s2 p2 300 500

    s3 p2 400

    s4 p1 200 100

    s4 p2 200

    s4 p4 300

    s4 p5 400

    qty for partpredicted or

    unknown Qty1

    100 p5

    100 predicted value 200

    200 p2

    200 predicted value 200

    300 p4

    300 predicted value 450

    400 p2

    400 p5

    400 predicted value 600

    94

    Tendance

    qty Qty1

    100 200

    200 300

    300 400

    400 600

    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

    SP est supposeacute avec la DF entre Qty et Qty1

    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

    Graph 3D avec Qty en abscisses

    95

    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

    30102008 120 27102008 4

    25102008 131 22102008 4

    23102008 127 20102008 4

    17102008 269 14102008 4

    15102008 60 12102008 4

    11102008 295 08102008 4

    09102008 340 06102008 4

    08102008 324 05102008 4

    06102008 315 03102008 4

    96

    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

    Graphique avec une info-bulle

    97

    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

    glissantes

    bull CSUM (Cumulative (Running) Sums)

    bull MAVG

    bull MSUM

    bull MDIFF

    bull Voir Teradata + loin

    98

    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

    On veut voir aussi le gain que T2 offrirait par rapport au T1

    99

    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

    Entiers est une table aux avec la colonne de12hellip10

    100

    Seacuteries financiegraveres

    capital taux nval apregraves n ans

    taux1val1 apregraves n ans

    GainAbs GainRel

    100 005 1 105 006 106 1 1

    100 005 2 110 006 112 2 2

    100 005 3 115 006 119 4 4

    100 005 4 121 006 126 5 5

    100 005 5 127 006 133 6 6

    100 005 6 134 006 141 7 7

    100 005 7 140 006 150 10 10

    100 005 8 147 006 159 12 12

    100 005 9 155 006 168 13 13

    100 005 10 162 006 179 17 17

    100 005 11 171 006 189 18 18

    100 005 12 179 006 201 22 22

    100 005 13 188 006 213 25 25

    100 005 14 197 006 226 29 29

    100 005 15 207 006 239 32 32

    100 005 16 218 006 254 36 36

    100 005 17 229 006 269 40 40

    100 005 18 240 006 285 45 45

    100 005 19 252 006 302 50 50

    100 005 20 265 006 320 55 55

    101

    Seacuteries financiegraveres

    102

    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

    financiers de la table Produits

    bull Dans la limite L de la somme donneacutee

    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

    bull En ordre descendant de prix

    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

    bull Plusieurs actionshellip

    103

    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

    P prix

    p3 200

    p1 200

    p2 400

    p3 200

    p4 100

    p6 100

    p5 300

    p8 300

    p7 400

    p10 200

    p12 300

    p13 300

    104

    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

    ORDER BY 4 desc 8 123

    105

    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

    106

    Creacuteation drsquoun Portefeuille Discussion

    Creacuteation drsquoun Portefeuille Discussion

    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

    107

    Creacuteation drsquoun Portefeuille Discussion

    Creacuteation drsquoun Portefeuille Discussion

    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

    108

    ROLLUP(DB2 amp SQL-Server)

    ROLLUP(DB2 amp SQL-Server)

    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

    109

    CUBE(DB2 amp SQL-Server)

    CUBE(DB2 amp SQL-Server)

    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

    110

    GROUPING SETS

    On indique explicitement les groupesndash entre ()

    le groupe () est constitueacute de toute la table

    SELECT p sum (qty) as tot-qty from SSP P

    WHERE SP P = PP AND SP S = SS

    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

    HAVING tot-qty gt 100

    Problegravemes avec des nuls que lrsquoon verra plus tard

    111

    Rollup Cube Grouping Setssous MsAccess

    Il y en a pas On peut simuler ces manipulations en

    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

    Peut ecirctre laborieux pour le CUBE

    112

    ROLLUP

    Remarquez le laquo null as cityraquo

    113

    ROLLUP

    114

    ROLLUP

    Et le CUBE

    Une solution pour l ambiguiumlteacute

    de certains nuls

    115

    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

    Wiley (publ)

    116

    Sous-Tables Parameacutetreacutees

    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

    117

    Sous-Tables Parameacutetreacutees

    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

    118

    Sous-Tables Parameacutetreacutees

    119

    Sous-Tables Parameacutetreacutees

    120

    Sous-Tables Parameacutetreacutees

    121

    Sous-Tables Parameacutetreacutees

    122

    Sous-Tables Parameacutetreacutees

    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

    123

    Sous-Tables Parameacutetreacutees

    Exeacutecution autonome

    124

    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

    ecirctre choisi que dans une ville drsquoun client de Northwind

    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

    hellip

    125

    Liste de Choix Multibase

    bull Requecircte Test-liste-de-choix mdb

    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

    126

    Liste de Choix MultibaseReacutesultat

    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

    Tregraves bonne question agrave Microsoft

    148

    FIN

    149

    • SQL Avanceacute 2010
    • Quoi amp Pourquoi
    • Slide 3
    • Synonymes
    • Noms dattributs
    • Slide 6
    • Slide 7
    • Slide 8
    • Insertion dans une Vue
    • Insertion dans une Vue (2)
    • MAJ drsquoune Vue MsAccess
    • MAJ drsquoune Vue MsAccess (2)
    • Suppression dans une Vue MsAccess
    • MsAccess Leacutegendes
    • Expressions de valeur
    • Expressions de valeur (2)
    • Pour en savoir + sur les attributs dynamiques
    • UNION et Noms Drsquoattributs
    • UNION et ORDER BY
    • ORDER BY et expressions de valeur
    • ORDER BY et expressions de valeur (2)
    • Ordre de prioriteacute dopeacuterations
    • Preacutedicat TOP
    • Preacutedicat TOP (2)
    • Clause BETWEEN
    • Limitations de NOT
    • ANY et ALL
    • Injection SQL
    • Injection SQL (2)
    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
    • Tabulations Croiseacutees
    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
    • Tabulations Croiseacutees (2)
    • Tabulations Croiseacutees (3)
    • Tabulations Croiseacutees (4)
    • Tabulations Croiseacutees (5)
    • XOR
    • IMP
    • Sous-requecirctes
    • Sous-requecirctes (2)
    • Sous-requecirctes (3)
    • Sous-requecirctes (4)
    • Sous-requecirctes (5)
    • Sous-requecirctes (6)
    • Sous-requecirctes (7)
    • Application aux Probabiliteacutes
    • Clause FROM imbriqueacutee
    • Clause FROM imbriqueacutee (2)
    • Clause FROM imbriqueacutee (3)
    • Clause FROM imbriqueacutee (4)
    • Clause FROM imbriqueacutee (5)
    • Clause FROM imbriqueacutee (6)
    • Valeurs nulles
    • Valeurs nulles (2)
    • Valeurs nulles (3)
    • Valeurs nulles (4)
    • Fonctions Scalaires DateTemps
    • Fonctions Scalaires DateTemps (2)
    • Fonctions Scalaires DateTemps (3)
    • Fonctions Scalaires DateTemps (4)
    • Fonctions Scalaires DateTemps (5)
    • Fonction Scalaire RND
    • Fonction Scalaire RND (2)
    • Fonctions Financiegraveres
    • Fonctions Financiegraveres (2)
    • Fonction DDB
    • Fonction DDB (2)
    • Fonction PMT
    • Fonction PMT (2)
    • Placement agrave taux variable
    • GROUP BY
    • LIST Function
    • LIST Function (2)
    • GROUP BY avec WHERE
    • GROUP BY (2)
    • GROUP BY avec HAVING
    • T-GROUP BY
    • T-GROUP BY (2)
    • T-GROUP BY (3)
    • T-GROUP BY (4)
    • Rangs Non-Denses (Non Dense Ranking)
    • Rangs Non-Denses (Graphique MsAccess)
    • Rangs Denses (Dense Ranking)
    • Rangs Denses Graphique MsAccess
    • Distribution
    • Reacutesultat
    • Distribution Cumulative
    • Reacutesultat (2)
    • Cateacutegorisation
    • Cateacutegorisation (2)
    • Cateacutegorisation (3)
    • UNION Preacutedictions de Valeurs Inconnues
    • UNION Preacutediction de Valeurs Inconnues
    • Tendance
    • Moyenne Glissante
    • Moyenne Glissante (2)
    • Moyenne Glissante (3)
    • Seacuteries financiegraveres
    • Seacuteries financiegraveres (2)
    • Seacuteries financiegraveres (3)
    • Seacuteries financiegraveres (4)
    • Creacuteation drsquoun Portefeuille
    • Creacuteation drsquoun Portefeuille (2)
    • Creacuteation drsquoun Portefeuille (3)
    • Creacuteation drsquoun Portefeuille (4)
    • Creacuteation drsquoun Portefeuille Discussion
    • Creacuteation drsquoun Portefeuille Discussion (2)
    • ROLLUP (DB2 amp SQL-Server)
    • CUBE (DB2 amp SQL-Server)
    • GROUPING SETS
    • Rollup Cube Grouping Sets sous MsAccess
    • Slide 112
    • Slide 113
    • Slide 114
    • Autres Opeacuterations Utiles
    • Sous-Tables Parameacutetreacutees
    • Sous-Tables Parameacutetreacutees (2)
    • Sous-Tables Parameacutetreacutees (3)
    • Sous-Tables Parameacutetreacutees (4)
    • Sous-Tables Parameacutetreacutees (5)
    • Sous-Tables Parameacutetreacutees (6)
    • Sous-Tables Parameacutetreacutees (7)
    • Sous-Tables Parameacutetreacutees (8)
    • Liste de Choix Multibase
    • Liste de Choix Multibase (2)
    • Liste de Choix Multibase Reacutesultat
    • FIN
    • Slide 149

      3

      S SNAME STATUS CITYS1 Smith 20 London

      S2 Jones 10 Paris

      S3 Blake 30 Paris

      S4 Clark 20 London

      S5 Adams 30 Athens

      P PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

      P2 Bolt Green 17 Paris

      P3 Screw Blue 14 Rome

      P4 Screw Red 12 London

      P5 Cam Blue 19 Paris

      P6 Cog Red 19 London

      S P QTYS1 P1 300

      S1 P2 200

      S1 P3 400

      S1 P4 200

      S1 P5 100

      S1 P6 100

      S2 P1 300

      S2 P2 400

      S3 P2 200

      S4 P2 200

      S4 P4 300

      S4 P5 400

      Exemple canon

      S

      P

      SP

      4

      Synonymes Diffeacuterent de peut ecirctre exprimeacute de trois

      maniegraveres= ^= ltgt

      ndash Oracle DB2 mais pas MsAccess Type dattribut peut ecirctre exprimeacute de plusieurs

      maniegraveres (SQL Oracle)CHAR(n) VARCHAR(n)FLOAT DECIMALNUMBER INTEGER SMALLINTLONG LONG VARCHAR

      Types de MsAccess ne sont pas ceux drsquoANSIndash Revoir mon cours SQLQBE de base

      5

      Noms dattributs Peuvent contenir des blancs

      Nom de fournisseur (Oracle) Dans MSAccess

      [Nom de fournisseur]lsquorsquoNom de fournisseur rsquorsquo et lsquoNom de

      fournisseur rsquo dans constantes clause LIKEhellip Dans SQL Server [ ] impliquent le respect de la

      casse En geacuteneacuteral interdits

      95Bilan Commence avec un chiffreSELECT Datehellip Mots reacuteserveacutes[AB] et [AB] MsAccess ndash Comment faire si besoin

      6

      On peut inseacuterer de tuples dans une vue MsAccessndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

      Y compris externendash Lien classe ndash sous-classe

      ndash Le reacutesultat peut ecirctre lrsquoinsertion simultaneacutee dans plusieurs tables sources de la vue

      ndash Le tuple inseacutereacute en QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

      Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

      7

      Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

      Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

      Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

      8

      A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

      CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

      CITY [P] QTY FROM S SP

      Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

      9

      Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

      une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

      SELECT P Ville FROM P C WHERE PCpostal = CCpostal

      Avec

      P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

      Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

      10

      Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

      attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

      Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

      A expeacuterimenter sur MsAccess

      Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

      11

      MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

      ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

      Y compris externendash Lien classe ndash sous-classe

      ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

      A expeacuterimenter sur les vues SP1 et SP2

      12

      MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

      QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

      avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

      valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

      13

      Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

      vuendash Toute vue mono-table ou agrave un tuple de la vue

      correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

      Surprise ndash On insegravere un tuple dans une vue V agrave jointure

      INSERT Vhellip

      ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

      14

      MsAccess LeacutegendesMsAccess Leacutegendes

      La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

      Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

      SP

      s Product ID qty

      s1 p1 300

      s1 p2 200

      s1 p3 400

      s1 p4 200

      s1 p5 100

      s1 p6 100

      s2 p1 300

      hellip hellip hellip

      15

      Expressions de valeur Peuvent ecirctre des attr dynamiques

      imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

      Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

      SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

      Une bonne question pour Microsoft

      16

      Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

      reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

      vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

      les attributs du type texte soit a = 2 et b = 3ndash a+b 23

      Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

      Il faut la clause Parameters a int b int

      17

      Pour en savoir + sur les attributs dynamiques

      Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

      Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

      Voir le site du CERIA

      18

      UNION et Noms Drsquoattributs

      SELECT [s] FROM S

      Union

      SELECT [p] FROM p

      Quel nom drsquoattribut sera dans le reacutesultat

      Sous MSAccess Dans SQL Server MySQL Oraclehellip

      19

      UNION et ORDER BY

      SELECT [s] FROM S

      Union

      SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

      les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

      Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

      apregraves le 2egraveme SELECT

      20

      ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

      ORDER BY clauseORDER BY SAL - COMM

      Exceptions UNION MINUS INTERSECT

      Cette clause peut reacutefeacuterencer lattribut par position

      Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

      Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

      MsAccess

      21

      ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

      une expression qui nest pas dans SELECT clauseSelect S CITY

      FROM SORDER BY SNAME STATUS+50

      exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

      Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

      Essayez

      SELECT distinct sp[s]

      FROM sp

      ORDER BY spqty

      22

      Ordre de prioriteacute dopeacuterations

      1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

      2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

      [e][e]

      23

      Preacutedicat TOP

      SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

      SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

      SQL Server eacutequivalent de TOP drsquoAccess

      SELECT TOP hellip WITH TIES

      >

      24

      Preacutedicat TOP

      Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

      La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

      Pour seacutelectionner les tuples 303132

      LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

      Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

      >

      25

      Clause BETWEEN

      Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

      geacuteneacuteriques ndash contrairement agrave LIKE

      Quel sera le reacutesultat pour Jones et pourquoi

      SELECT FROM S where sname between b and J

      Et si on eacutecrit

      SELECT FROM S where sname between J and b

      ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

      26

      Limitations de NOT

      Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

      (SELECT CITY FROM S)

      Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

      Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

      Hypothegravese de Monde ouvert

      27

      ANY et ALL

      All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

      (SELECT STATUS FROM S WHERE SNAME = BNP)

      si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

      si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

      Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

      (SELECT STATUS FROM S WHERE SNAME = BNP)

      28

      Injection SQL On ajoute en fraude agrave une requecircte a priori en

      restriction une condition qui annule cette restriction

      Gros deacutegacircts sur le WEB notammentSELECT

      FROM S

      WHERE city=london Or True

      SQL Injection

      S SName Status City

      s1 smith Paris

      s2 Jones 100 london

      s3 Blake 30 Paris

      s4 Clark 10 london

      s5 Adams 30 Athens

      29

      Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

      True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

      SELECT

      FROM S

      WHERE status= 100 Or 200

      SELECT

      FROM S

      WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

      SELECT

      FROM S

      WHERE city=london Or 100

      30

      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

      Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

      BY et les valeurs individuelles en mecircme temps

      ndash Impossible avec SQL standard

      31

      S Total Qty p1 p2 p3 p4 p5 p6

      s1 1300 300 200 400 200 100 100

      s2 700 300 400

      s3 200 200

      s4 900 200 300 400

      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

      Tabulations Croiseacutees

      32

      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

      Transforment les valeurs dattributs en attributsndash Par exemple

      les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

      les valeurs de P1 P2 sont les QTY (par ex) correspondants

      33

      S Total Qty p1 p2 p3 p4 p5 p6

      s1 1300 300 200 400 200 100 100

      s2 700 300 400

      s3 200 200

      s4 900 200 300 400

      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

      Tabulations Croiseacutees

      34

      TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

      Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

      Tabulations Croiseacutees

      Nouvellescolonnes

      35

      La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

      On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

      Tabulations Croiseacutees

      36

      On peut utiliser la clause WHEREWHERE P IN (P1 P2)

      Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

      On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

      Mais cette clause naffecte pas les calculs des agreacutegats

      Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

      Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

      Tabulations Croiseacutees

      37

      XORSELECT S[S] SStatus SCity

      FROM S

      WHERE Status=10 Xor city=paris

      bull A noter le traitement du nul dans City

      38

      IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

      bull A noter le traitement du nul dans City

      39

      Sous-requecirctes

      A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

      clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

      rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

      sous-requecircte

      SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

      40

      Sous-requecirctes

      Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

      laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

      vite ou Livrerait au moins aussi vite mais en quantiteacute

      plus grande

      41

      Sous-requecirctes

      Skylinendash Tout objet non-domineacute (cacheacute

      totalement) par un autre

      SELECT X[s] X[p] qty delay

      FROM SP X

      where not exists

      (select from SP as Y

      where (Yqty gt= XQty and YDelay lt XDelay or

      Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

      order by X[p]

      42

      Sous-requecirctes Reacutesultat

      s p qty delay

      s1 p1 300 15

      s4 p1 200 13

      s3 p2 400 15

      s2 p2 300 12

      s1 p3 400 17

      s4 p4 300 11

      s4 p5 400 7

      s1 p6 100 8

      s p qty Delay

      s1 p1 300 15

      s1 p2 200 12

      s1 p3 400 17

      s1 p4 200 11

      s1 p5 100 7

      s1 p6 100 8

      s2 p2 300 12

      s3 p2 400 15

      s4 p1 200 13

      s4 p2 200 15

      s4 p4 300 11

      s4 p5 400 7

      S

      43

      Sous-requecirctes

      On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

      SELECT Count() AS TotalQty

      FROM (select distinct qty from sp)

      On peut aussi avoir une sous-requecircte dans la clause SELECT

      SELECT SP[s] SP[p] qty

      (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

      round(qtyTotalQty 3) AS Fraction

      FROM SP order by [s]

      44

      Sous-requecirctes

      s p qty TotalQty Fraction

      s1 p1 300 1300 0231

      s1 p6 100 1300 0077

      s1 p5 100 1300 0077

      s1 p4 200 1300 0154

      s1 p3 400 1300 0308

      s1 p2 200 1300 0154

      s2 p2 300 300 1

      s3 p2 400 400 1

      s4 p5 400 1100 0364

      s4 p4 300 1100 0273

      s4 p2 200 1100 0182

      bull ReacutesultatSP

      s p qty

      s1 p1 300

      s1 p2 200

      s1 p3 400

      s1 p4 200

      s1 p5 100

      s1 p6 100

      s2 p2 300

      s3 p2 400

      s4 p1 200

      s4 p2 200

      s4 p4 300

      s4 p5 400

      45

      Sous-requecirctesbull En Mode Graphique

      s p qtyTotalQty

      Fraction

      s1 p1 300 1300 0231

      s1 p6 100 1300 0077

      s1 p5 100 1300 0077

      s1 p4 200 1300 0154

      s1 p3 400 1300 0308

      s1 p2 200 1300 0154

      s2 p2 300 300 1

      s3 p2 400 400 1

      s4 p5 400 1100 0364

      s4 p4 300 1100 0273

      s4 p2 200 1100 0182

      46

      Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

      SELECT (select count(qty) from SP

      where qty gt= [seuil svp ]) count() as reacutesultat

      FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

      probabiliteacute conditionnelle

      47

      Clause FROM imbriqueacutee

      Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

      Select attrshellipFROM [tbls] (SQL-Select) Where hellip

      Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

      Agrave essayer

      48

      Clause FROM imbriqueacuteePossibiliteacutes

      ndash Agreacutegations par-dessus UNION ou UNION ALL

      ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

      MsAccess

      ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

      Mais la reacutefeacuterence au nom de la requecircte OK

      49

      Clause FROM imbriqueacutee

      SELECT sum(weight) AS [poids-total]

      FROM (SELECT weight pcity FROM P WHERE City like l

      UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

      50

      Clause FROM imbriqueacutee

      select avg(moy1) as [moyenne-des-moyennes]

      FROM

      (SELECT avg(weight) as moy1 FROM P WHERE City like l

      UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

      51

      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

      52

      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

      totaux partiels et total geacuteneacuteral

      total_Id TotalQty

      s1 1300

      s2 300

      s3 400

      s4 400

      total Geacuteneacuteral

      2400

      53

      Valeurs nulles

      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

      Non WHERE HAVING GROUP BY (rel 1)

      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

      MsAccess Oui DISTINCT Autres clauses

      54

      Valeurs nulles Si x est nul et y nrsquoest pas alors

      1 x gt y est vrai ou faux

      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

      SELECT FROM S WHERE CITY =Paris

      UNION

      SELECT FROM S WHERE NOT CITY = Paris

      est toujours pourquoi faire simpleSELECT FROM S

      si on peut faire compliqueacute

      55

      Valeurs nullesValeurs nulles

      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

      56

      Valeurs nulles

      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

      LOG (nul) -gt Error A voir cas par cas

      57

      Fonctions Scalaires DateTemps

      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

      58

      Fonctions Scalaires DateTemps

      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

      weekday(day(now())-1) AS [day]FROM S

      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

      59

      Fonctions Scalaires DateTemps

      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

      Interval Explanation

      Yyyy Year

      q Quarter

      m Month

      y Day of year

      d Day

      w Weekday

      ww Week

      h Hour

      n Minute

      s Second

      60

      Fonctions Scalaires DateTemps

      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

      Test DateDiff

      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

      61

      Fonctions Scalaires DateTemps

      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

      Liste tous les tuples ougrave DateV est de Janvier 2009

      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

      62

      Fonction Scalaire RND

      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

      FROM SPORDER BY rnd(qty) DESC

      echantillon s rank

      s1 502628087997437E-02

      s4 0518015921115875

      s3 075702953338623

      63

      Fonction Scalaire RND

      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

      FROM SPORDER BY rnd(qty) DESC

      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

      Votre commentaire ici

      64

      Fonctions Financiegraveres

      Fonction DDB Calcule lamortissement deacutegressif

      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

      65

      Fonctions Financiegraveres

      Fonction DDB Calcule lamortissement deacutegressif

      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

      66

      Fonction DDB

      insert into DDB (cost salvage life factor amortiss period)

      select 100 as cost 70 as salvage 5 as life 1 as factor

      DDB(cost salvage life period factor) as amortiss period

      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

      67

      Fonction DDB

      INSERT INTO DDB ( cost salvage life factor amortiss period )

      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

      DDB(costsalvagelifeperiodfactor) AS amortiss period

      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

      68

      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

      nombres neacutegatifs

      Fonction PMT

      69

      Fonction PMT

      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

      Fonction PMT calcul dannuiteacute demprunt

      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

      preacutesentevaleur_payeacutee surprime

      -16049 005 20 200000 -320980 -120980

      70

      Placement agrave taux variable Somme et Fin sont les paramegravetres

      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

      Et les nuls que log ne supporte pas

      Anneacutee relative

      Taux

      1 4

      2 4

      3 3

      4 5

      5 5

      Voir + dans le livre laquo SQL Design Patterns raquo

      71

      GROUP BY Est une clause redondante avec le SELECT agrave sous-

      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

      est eacutequivalente agrave

      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

      WHERE XP = SPP) FROM SP

      Testez

      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

      72

      LIST Function La requecircte

      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

      Comme les tabulations croiseacutees

      ndash Mais en + simple

      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

      ndash En mono attribut (2004)

      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

      sous-formulaires

      73

      LIST Function

      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

      74

      GROUP BY avec WHERE

      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

      75

      GROUP BY

      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

      Pourquoi

      76

      GROUP BY avec HAVING

      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

      77

      T-GROUP BY Proposeacute pour SQL

      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

      Le rocircle de -join par rapport agrave equi-join

      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

      INT(AVG(QTY)) AS QTY2FROM SP

      T-GROUP (QT1 BY P QT2 BY ltgt P)

      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

      78

      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

      FROM SP Vrai ou Faux

      79

      T-GROUP BY

      Reacutesultat

      part avg_qty_other_parts part_avg_qty

      p1 250 300

      p2 262 250

      p3 245 400

      p4 260 250

      p5 260 250

      p6 272 100

      80

      T-GROUP BY

      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

      81

      Rangs Non-Denses(Non Dense Ranking)

      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

      s p qtyND-rank

      s4 p5 400 1

      s3 p2 400 1

      s1 p3 400 1

      s4 p4 300 4

      s2 p2 300 4

      s1 p1 300 4

      s4 p2 200 7

      s1 p4 200 7

      s1 p2 200 7

      s4 p1 200 7

      s1 p6 100 11

      s1 p5 100 11

      82

      Rangs Non-Denses(Graphique MsAccess)

      s p qty ND-rank

      s4 p5 400 1

      s3 p2 400 1

      s1 p3 400 1

      s4 p4 300 4

      s2 p2 300 4

      s1 p1 300 4

      s4 p2 200 7

      s1 p4 200 7

      s1 p2 200 7

      s4 p1 200 7

      s1 p6 100 11

      s1 p5 100 11

      83

      Rangs Denses(Dense Ranking)

      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

      s p qtyD-rank

      s1 p3 400 1

      s3 p2 400 1

      s4 p5 400 1

      s1 p1 300 2

      s2 p2 300 2

      s4 p4 300 2

      s1 p4 200 3

      s1 p2 200 3

      s4 p2 200 3

      s4 p1 200 3

      s1 p6 100 4

      s1 p5 100 4

      84

      Rangs DensesGraphique MsAccess

      s p qty D-rank

      s1 p3 400 1

      s3 p2 400 1

      s4 p5 400 1

      s1 p1 300 2

      s2 p2 300 2

      s4 p4 300 2

      s1 p4 200 3

      s1 p2 200 3

      s4 p2 200 3

      s4 p1 200 3

      s1 p6 100 4

      s1 p5 100 4

      85

      Distribution

      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

      86

      Reacutesultat

      s Distribution

      s1 0419

      s2 0097

      s3 0129

      s4 0355

      87

      Distribution Cumulative

      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

      FROM SP

      ORDER BY SP[s]

      88

      Reacutesultat

      sDistribution Cumuleacutee

      s1 0419

      s2 0516

      s3 0645

      s4 1

      89

      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

      - Un outil - Fonction scalaire IIF de SQL Access

      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

      - On peut alternativement utiliser UNION ou UNION ALL

      90

      CateacutegorisationSELECT S[S] SSName SStatus SCity

      IIf([status]lt30OKgood) AS IIfSimple

      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

      FROM S

      GROUP BY S[S] SSName SStatus SCity

      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

      s1 Smith Paris good good

      s2 Jones 100 london good VGood

      s3 Blake 30 Paris good good

      s4 Clark 10 london OK OK

      s5 Adams 30 Athens good good

      bull Notez le traitement du null

      91

      Cateacutegorisation Emploi alternatif drsquoUNION

      SELECT Ppname weight Very Heavy as Warning

      FROM P where weight gt 13

      union

      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

      UNION

      select Ppname weight Light as warn from p where weight lt 10

      ORDER BY warning DESC weight DESC

      pname weight Warning

      cam 19 Very Heavy

      cog 19 Very Heavy

      bolt 17 Very Heavy

      nut 14 Very Heavy

      screw 14 Very Heavy

      nut 14 Quite Heavy

      screw 14 Quite Heavy

      screw 12 Quite Heavy

      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

      92

      UNIONPreacutedictions de Valeurs Inconnues

      On considegravere AVG(Qty1) pour Qty

      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

      SP

      s p qtyQty1

      s1 p1 300 400

      s1 p2 200

      s1 p3 400 600

      s1 p4 200 300

      s1 p5 100

      s1 p6 100 200

      s2 p2 300 500

      s3 p2 400

      s4 p1 200 100

      s4 p2 200

      s4 p4 300

      s4 p5 400

      93

      UNIONPreacutediction de Valeurs Inconnues

      On peut compleacuteter SP par UPDATE SPReacutesultat

      SP

      s p qtyQty1

      s1 p1 300 400

      s1 p2 200

      s1 p3 400 600

      s1 p4 200 300

      s1 p5 100

      s1 p6 100 200

      s2 p2 300 500

      s3 p2 400

      s4 p1 200 100

      s4 p2 200

      s4 p4 300

      s4 p5 400

      qty for partpredicted or

      unknown Qty1

      100 p5

      100 predicted value 200

      200 p2

      200 predicted value 200

      300 p4

      300 predicted value 450

      400 p2

      400 p5

      400 predicted value 600

      94

      Tendance

      qty Qty1

      100 200

      200 300

      300 400

      400 600

      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

      SP est supposeacute avec la DF entre Qty et Qty1

      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

      Graph 3D avec Qty en abscisses

      95

      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

      30102008 120 27102008 4

      25102008 131 22102008 4

      23102008 127 20102008 4

      17102008 269 14102008 4

      15102008 60 12102008 4

      11102008 295 08102008 4

      09102008 340 06102008 4

      08102008 324 05102008 4

      06102008 315 03102008 4

      96

      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

      Graphique avec une info-bulle

      97

      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

      glissantes

      bull CSUM (Cumulative (Running) Sums)

      bull MAVG

      bull MSUM

      bull MDIFF

      bull Voir Teradata + loin

      98

      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

      On veut voir aussi le gain que T2 offrirait par rapport au T1

      99

      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

      Entiers est une table aux avec la colonne de12hellip10

      100

      Seacuteries financiegraveres

      capital taux nval apregraves n ans

      taux1val1 apregraves n ans

      GainAbs GainRel

      100 005 1 105 006 106 1 1

      100 005 2 110 006 112 2 2

      100 005 3 115 006 119 4 4

      100 005 4 121 006 126 5 5

      100 005 5 127 006 133 6 6

      100 005 6 134 006 141 7 7

      100 005 7 140 006 150 10 10

      100 005 8 147 006 159 12 12

      100 005 9 155 006 168 13 13

      100 005 10 162 006 179 17 17

      100 005 11 171 006 189 18 18

      100 005 12 179 006 201 22 22

      100 005 13 188 006 213 25 25

      100 005 14 197 006 226 29 29

      100 005 15 207 006 239 32 32

      100 005 16 218 006 254 36 36

      100 005 17 229 006 269 40 40

      100 005 18 240 006 285 45 45

      100 005 19 252 006 302 50 50

      100 005 20 265 006 320 55 55

      101

      Seacuteries financiegraveres

      102

      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

      financiers de la table Produits

      bull Dans la limite L de la somme donneacutee

      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

      bull En ordre descendant de prix

      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

      bull Plusieurs actionshellip

      103

      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

      P prix

      p3 200

      p1 200

      p2 400

      p3 200

      p4 100

      p6 100

      p5 300

      p8 300

      p7 400

      p10 200

      p12 300

      p13 300

      104

      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

      ORDER BY 4 desc 8 123

      105

      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

      106

      Creacuteation drsquoun Portefeuille Discussion

      Creacuteation drsquoun Portefeuille Discussion

      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

      107

      Creacuteation drsquoun Portefeuille Discussion

      Creacuteation drsquoun Portefeuille Discussion

      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

      108

      ROLLUP(DB2 amp SQL-Server)

      ROLLUP(DB2 amp SQL-Server)

      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

      109

      CUBE(DB2 amp SQL-Server)

      CUBE(DB2 amp SQL-Server)

      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

      110

      GROUPING SETS

      On indique explicitement les groupesndash entre ()

      le groupe () est constitueacute de toute la table

      SELECT p sum (qty) as tot-qty from SSP P

      WHERE SP P = PP AND SP S = SS

      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

      HAVING tot-qty gt 100

      Problegravemes avec des nuls que lrsquoon verra plus tard

      111

      Rollup Cube Grouping Setssous MsAccess

      Il y en a pas On peut simuler ces manipulations en

      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

      Peut ecirctre laborieux pour le CUBE

      112

      ROLLUP

      Remarquez le laquo null as cityraquo

      113

      ROLLUP

      114

      ROLLUP

      Et le CUBE

      Une solution pour l ambiguiumlteacute

      de certains nuls

      115

      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

      Wiley (publ)

      116

      Sous-Tables Parameacutetreacutees

      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

      117

      Sous-Tables Parameacutetreacutees

      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

      118

      Sous-Tables Parameacutetreacutees

      119

      Sous-Tables Parameacutetreacutees

      120

      Sous-Tables Parameacutetreacutees

      121

      Sous-Tables Parameacutetreacutees

      122

      Sous-Tables Parameacutetreacutees

      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

      123

      Sous-Tables Parameacutetreacutees

      Exeacutecution autonome

      124

      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

      ecirctre choisi que dans une ville drsquoun client de Northwind

      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

      hellip

      125

      Liste de Choix Multibase

      bull Requecircte Test-liste-de-choix mdb

      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

      126

      Liste de Choix MultibaseReacutesultat

      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

      Tregraves bonne question agrave Microsoft

      148

      FIN

      149

      • SQL Avanceacute 2010
      • Quoi amp Pourquoi
      • Slide 3
      • Synonymes
      • Noms dattributs
      • Slide 6
      • Slide 7
      • Slide 8
      • Insertion dans une Vue
      • Insertion dans une Vue (2)
      • MAJ drsquoune Vue MsAccess
      • MAJ drsquoune Vue MsAccess (2)
      • Suppression dans une Vue MsAccess
      • MsAccess Leacutegendes
      • Expressions de valeur
      • Expressions de valeur (2)
      • Pour en savoir + sur les attributs dynamiques
      • UNION et Noms Drsquoattributs
      • UNION et ORDER BY
      • ORDER BY et expressions de valeur
      • ORDER BY et expressions de valeur (2)
      • Ordre de prioriteacute dopeacuterations
      • Preacutedicat TOP
      • Preacutedicat TOP (2)
      • Clause BETWEEN
      • Limitations de NOT
      • ANY et ALL
      • Injection SQL
      • Injection SQL (2)
      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
      • Tabulations Croiseacutees
      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
      • Tabulations Croiseacutees (2)
      • Tabulations Croiseacutees (3)
      • Tabulations Croiseacutees (4)
      • Tabulations Croiseacutees (5)
      • XOR
      • IMP
      • Sous-requecirctes
      • Sous-requecirctes (2)
      • Sous-requecirctes (3)
      • Sous-requecirctes (4)
      • Sous-requecirctes (5)
      • Sous-requecirctes (6)
      • Sous-requecirctes (7)
      • Application aux Probabiliteacutes
      • Clause FROM imbriqueacutee
      • Clause FROM imbriqueacutee (2)
      • Clause FROM imbriqueacutee (3)
      • Clause FROM imbriqueacutee (4)
      • Clause FROM imbriqueacutee (5)
      • Clause FROM imbriqueacutee (6)
      • Valeurs nulles
      • Valeurs nulles (2)
      • Valeurs nulles (3)
      • Valeurs nulles (4)
      • Fonctions Scalaires DateTemps
      • Fonctions Scalaires DateTemps (2)
      • Fonctions Scalaires DateTemps (3)
      • Fonctions Scalaires DateTemps (4)
      • Fonctions Scalaires DateTemps (5)
      • Fonction Scalaire RND
      • Fonction Scalaire RND (2)
      • Fonctions Financiegraveres
      • Fonctions Financiegraveres (2)
      • Fonction DDB
      • Fonction DDB (2)
      • Fonction PMT
      • Fonction PMT (2)
      • Placement agrave taux variable
      • GROUP BY
      • LIST Function
      • LIST Function (2)
      • GROUP BY avec WHERE
      • GROUP BY (2)
      • GROUP BY avec HAVING
      • T-GROUP BY
      • T-GROUP BY (2)
      • T-GROUP BY (3)
      • T-GROUP BY (4)
      • Rangs Non-Denses (Non Dense Ranking)
      • Rangs Non-Denses (Graphique MsAccess)
      • Rangs Denses (Dense Ranking)
      • Rangs Denses Graphique MsAccess
      • Distribution
      • Reacutesultat
      • Distribution Cumulative
      • Reacutesultat (2)
      • Cateacutegorisation
      • Cateacutegorisation (2)
      • Cateacutegorisation (3)
      • UNION Preacutedictions de Valeurs Inconnues
      • UNION Preacutediction de Valeurs Inconnues
      • Tendance
      • Moyenne Glissante
      • Moyenne Glissante (2)
      • Moyenne Glissante (3)
      • Seacuteries financiegraveres
      • Seacuteries financiegraveres (2)
      • Seacuteries financiegraveres (3)
      • Seacuteries financiegraveres (4)
      • Creacuteation drsquoun Portefeuille
      • Creacuteation drsquoun Portefeuille (2)
      • Creacuteation drsquoun Portefeuille (3)
      • Creacuteation drsquoun Portefeuille (4)
      • Creacuteation drsquoun Portefeuille Discussion
      • Creacuteation drsquoun Portefeuille Discussion (2)
      • ROLLUP (DB2 amp SQL-Server)
      • CUBE (DB2 amp SQL-Server)
      • GROUPING SETS
      • Rollup Cube Grouping Sets sous MsAccess
      • Slide 112
      • Slide 113
      • Slide 114
      • Autres Opeacuterations Utiles
      • Sous-Tables Parameacutetreacutees
      • Sous-Tables Parameacutetreacutees (2)
      • Sous-Tables Parameacutetreacutees (3)
      • Sous-Tables Parameacutetreacutees (4)
      • Sous-Tables Parameacutetreacutees (5)
      • Sous-Tables Parameacutetreacutees (6)
      • Sous-Tables Parameacutetreacutees (7)
      • Sous-Tables Parameacutetreacutees (8)
      • Liste de Choix Multibase
      • Liste de Choix Multibase (2)
      • Liste de Choix Multibase Reacutesultat
      • FIN
      • Slide 149

        4

        Synonymes Diffeacuterent de peut ecirctre exprimeacute de trois

        maniegraveres= ^= ltgt

        ndash Oracle DB2 mais pas MsAccess Type dattribut peut ecirctre exprimeacute de plusieurs

        maniegraveres (SQL Oracle)CHAR(n) VARCHAR(n)FLOAT DECIMALNUMBER INTEGER SMALLINTLONG LONG VARCHAR

        Types de MsAccess ne sont pas ceux drsquoANSIndash Revoir mon cours SQLQBE de base

        5

        Noms dattributs Peuvent contenir des blancs

        Nom de fournisseur (Oracle) Dans MSAccess

        [Nom de fournisseur]lsquorsquoNom de fournisseur rsquorsquo et lsquoNom de

        fournisseur rsquo dans constantes clause LIKEhellip Dans SQL Server [ ] impliquent le respect de la

        casse En geacuteneacuteral interdits

        95Bilan Commence avec un chiffreSELECT Datehellip Mots reacuteserveacutes[AB] et [AB] MsAccess ndash Comment faire si besoin

        6

        On peut inseacuterer de tuples dans une vue MsAccessndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

        Y compris externendash Lien classe ndash sous-classe

        ndash Le reacutesultat peut ecirctre lrsquoinsertion simultaneacutee dans plusieurs tables sources de la vue

        ndash Le tuple inseacutereacute en QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

        Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

        7

        Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

        Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

        Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

        8

        A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

        CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

        CITY [P] QTY FROM S SP

        Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

        9

        Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

        une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

        SELECT P Ville FROM P C WHERE PCpostal = CCpostal

        Avec

        P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

        Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

        10

        Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

        attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

        Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

        A expeacuterimenter sur MsAccess

        Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

        11

        MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

        ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

        Y compris externendash Lien classe ndash sous-classe

        ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

        A expeacuterimenter sur les vues SP1 et SP2

        12

        MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

        QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

        avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

        valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

        13

        Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

        vuendash Toute vue mono-table ou agrave un tuple de la vue

        correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

        Surprise ndash On insegravere un tuple dans une vue V agrave jointure

        INSERT Vhellip

        ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

        14

        MsAccess LeacutegendesMsAccess Leacutegendes

        La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

        Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

        SP

        s Product ID qty

        s1 p1 300

        s1 p2 200

        s1 p3 400

        s1 p4 200

        s1 p5 100

        s1 p6 100

        s2 p1 300

        hellip hellip hellip

        15

        Expressions de valeur Peuvent ecirctre des attr dynamiques

        imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

        Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

        SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

        Une bonne question pour Microsoft

        16

        Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

        reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

        vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

        les attributs du type texte soit a = 2 et b = 3ndash a+b 23

        Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

        Il faut la clause Parameters a int b int

        17

        Pour en savoir + sur les attributs dynamiques

        Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

        Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

        Voir le site du CERIA

        18

        UNION et Noms Drsquoattributs

        SELECT [s] FROM S

        Union

        SELECT [p] FROM p

        Quel nom drsquoattribut sera dans le reacutesultat

        Sous MSAccess Dans SQL Server MySQL Oraclehellip

        19

        UNION et ORDER BY

        SELECT [s] FROM S

        Union

        SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

        les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

        Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

        apregraves le 2egraveme SELECT

        20

        ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

        ORDER BY clauseORDER BY SAL - COMM

        Exceptions UNION MINUS INTERSECT

        Cette clause peut reacutefeacuterencer lattribut par position

        Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

        Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

        MsAccess

        21

        ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

        une expression qui nest pas dans SELECT clauseSelect S CITY

        FROM SORDER BY SNAME STATUS+50

        exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

        Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

        Essayez

        SELECT distinct sp[s]

        FROM sp

        ORDER BY spqty

        22

        Ordre de prioriteacute dopeacuterations

        1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

        2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

        [e][e]

        23

        Preacutedicat TOP

        SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

        SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

        SQL Server eacutequivalent de TOP drsquoAccess

        SELECT TOP hellip WITH TIES

        >

        24

        Preacutedicat TOP

        Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

        La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

        Pour seacutelectionner les tuples 303132

        LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

        Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

        >

        25

        Clause BETWEEN

        Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

        geacuteneacuteriques ndash contrairement agrave LIKE

        Quel sera le reacutesultat pour Jones et pourquoi

        SELECT FROM S where sname between b and J

        Et si on eacutecrit

        SELECT FROM S where sname between J and b

        ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

        26

        Limitations de NOT

        Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

        (SELECT CITY FROM S)

        Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

        Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

        Hypothegravese de Monde ouvert

        27

        ANY et ALL

        All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

        (SELECT STATUS FROM S WHERE SNAME = BNP)

        si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

        si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

        Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

        (SELECT STATUS FROM S WHERE SNAME = BNP)

        28

        Injection SQL On ajoute en fraude agrave une requecircte a priori en

        restriction une condition qui annule cette restriction

        Gros deacutegacircts sur le WEB notammentSELECT

        FROM S

        WHERE city=london Or True

        SQL Injection

        S SName Status City

        s1 smith Paris

        s2 Jones 100 london

        s3 Blake 30 Paris

        s4 Clark 10 london

        s5 Adams 30 Athens

        29

        Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

        True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

        SELECT

        FROM S

        WHERE status= 100 Or 200

        SELECT

        FROM S

        WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

        SELECT

        FROM S

        WHERE city=london Or 100

        30

        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

        Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

        BY et les valeurs individuelles en mecircme temps

        ndash Impossible avec SQL standard

        31

        S Total Qty p1 p2 p3 p4 p5 p6

        s1 1300 300 200 400 200 100 100

        s2 700 300 400

        s3 200 200

        s4 900 200 300 400

        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

        Tabulations Croiseacutees

        32

        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

        Transforment les valeurs dattributs en attributsndash Par exemple

        les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

        les valeurs de P1 P2 sont les QTY (par ex) correspondants

        33

        S Total Qty p1 p2 p3 p4 p5 p6

        s1 1300 300 200 400 200 100 100

        s2 700 300 400

        s3 200 200

        s4 900 200 300 400

        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

        Tabulations Croiseacutees

        34

        TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

        Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

        Tabulations Croiseacutees

        Nouvellescolonnes

        35

        La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

        On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

        Tabulations Croiseacutees

        36

        On peut utiliser la clause WHEREWHERE P IN (P1 P2)

        Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

        On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

        Mais cette clause naffecte pas les calculs des agreacutegats

        Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

        Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

        Tabulations Croiseacutees

        37

        XORSELECT S[S] SStatus SCity

        FROM S

        WHERE Status=10 Xor city=paris

        bull A noter le traitement du nul dans City

        38

        IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

        bull A noter le traitement du nul dans City

        39

        Sous-requecirctes

        A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

        clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

        rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

        sous-requecircte

        SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

        40

        Sous-requecirctes

        Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

        laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

        vite ou Livrerait au moins aussi vite mais en quantiteacute

        plus grande

        41

        Sous-requecirctes

        Skylinendash Tout objet non-domineacute (cacheacute

        totalement) par un autre

        SELECT X[s] X[p] qty delay

        FROM SP X

        where not exists

        (select from SP as Y

        where (Yqty gt= XQty and YDelay lt XDelay or

        Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

        order by X[p]

        42

        Sous-requecirctes Reacutesultat

        s p qty delay

        s1 p1 300 15

        s4 p1 200 13

        s3 p2 400 15

        s2 p2 300 12

        s1 p3 400 17

        s4 p4 300 11

        s4 p5 400 7

        s1 p6 100 8

        s p qty Delay

        s1 p1 300 15

        s1 p2 200 12

        s1 p3 400 17

        s1 p4 200 11

        s1 p5 100 7

        s1 p6 100 8

        s2 p2 300 12

        s3 p2 400 15

        s4 p1 200 13

        s4 p2 200 15

        s4 p4 300 11

        s4 p5 400 7

        S

        43

        Sous-requecirctes

        On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

        SELECT Count() AS TotalQty

        FROM (select distinct qty from sp)

        On peut aussi avoir une sous-requecircte dans la clause SELECT

        SELECT SP[s] SP[p] qty

        (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

        round(qtyTotalQty 3) AS Fraction

        FROM SP order by [s]

        44

        Sous-requecirctes

        s p qty TotalQty Fraction

        s1 p1 300 1300 0231

        s1 p6 100 1300 0077

        s1 p5 100 1300 0077

        s1 p4 200 1300 0154

        s1 p3 400 1300 0308

        s1 p2 200 1300 0154

        s2 p2 300 300 1

        s3 p2 400 400 1

        s4 p5 400 1100 0364

        s4 p4 300 1100 0273

        s4 p2 200 1100 0182

        bull ReacutesultatSP

        s p qty

        s1 p1 300

        s1 p2 200

        s1 p3 400

        s1 p4 200

        s1 p5 100

        s1 p6 100

        s2 p2 300

        s3 p2 400

        s4 p1 200

        s4 p2 200

        s4 p4 300

        s4 p5 400

        45

        Sous-requecirctesbull En Mode Graphique

        s p qtyTotalQty

        Fraction

        s1 p1 300 1300 0231

        s1 p6 100 1300 0077

        s1 p5 100 1300 0077

        s1 p4 200 1300 0154

        s1 p3 400 1300 0308

        s1 p2 200 1300 0154

        s2 p2 300 300 1

        s3 p2 400 400 1

        s4 p5 400 1100 0364

        s4 p4 300 1100 0273

        s4 p2 200 1100 0182

        46

        Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

        SELECT (select count(qty) from SP

        where qty gt= [seuil svp ]) count() as reacutesultat

        FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

        probabiliteacute conditionnelle

        47

        Clause FROM imbriqueacutee

        Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

        Select attrshellipFROM [tbls] (SQL-Select) Where hellip

        Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

        Agrave essayer

        48

        Clause FROM imbriqueacuteePossibiliteacutes

        ndash Agreacutegations par-dessus UNION ou UNION ALL

        ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

        MsAccess

        ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

        Mais la reacutefeacuterence au nom de la requecircte OK

        49

        Clause FROM imbriqueacutee

        SELECT sum(weight) AS [poids-total]

        FROM (SELECT weight pcity FROM P WHERE City like l

        UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

        50

        Clause FROM imbriqueacutee

        select avg(moy1) as [moyenne-des-moyennes]

        FROM

        (SELECT avg(weight) as moy1 FROM P WHERE City like l

        UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

        51

        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

        select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

        52

        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

        totaux partiels et total geacuteneacuteral

        total_Id TotalQty

        s1 1300

        s2 300

        s3 400

        s4 400

        total Geacuteneacuteral

        2400

        53

        Valeurs nulles

        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

        Non WHERE HAVING GROUP BY (rel 1)

        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

        MsAccess Oui DISTINCT Autres clauses

        54

        Valeurs nulles Si x est nul et y nrsquoest pas alors

        1 x gt y est vrai ou faux

        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

        SELECT FROM S WHERE CITY =Paris

        UNION

        SELECT FROM S WHERE NOT CITY = Paris

        est toujours pourquoi faire simpleSELECT FROM S

        si on peut faire compliqueacute

        55

        Valeurs nullesValeurs nulles

        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

        56

        Valeurs nulles

        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

        LOG (nul) -gt Error A voir cas par cas

        57

        Fonctions Scalaires DateTemps

        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

        58

        Fonctions Scalaires DateTemps

        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

        weekday(day(now())-1) AS [day]FROM S

        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

        59

        Fonctions Scalaires DateTemps

        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

        Interval Explanation

        Yyyy Year

        q Quarter

        m Month

        y Day of year

        d Day

        w Weekday

        ww Week

        h Hour

        n Minute

        s Second

        60

        Fonctions Scalaires DateTemps

        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

        Test DateDiff

        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

        61

        Fonctions Scalaires DateTemps

        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

        Liste tous les tuples ougrave DateV est de Janvier 2009

        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

        62

        Fonction Scalaire RND

        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

        FROM SPORDER BY rnd(qty) DESC

        echantillon s rank

        s1 502628087997437E-02

        s4 0518015921115875

        s3 075702953338623

        63

        Fonction Scalaire RND

        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

        FROM SPORDER BY rnd(qty) DESC

        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

        Votre commentaire ici

        64

        Fonctions Financiegraveres

        Fonction DDB Calcule lamortissement deacutegressif

        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

        65

        Fonctions Financiegraveres

        Fonction DDB Calcule lamortissement deacutegressif

        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

        66

        Fonction DDB

        insert into DDB (cost salvage life factor amortiss period)

        select 100 as cost 70 as salvage 5 as life 1 as factor

        DDB(cost salvage life period factor) as amortiss period

        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

        67

        Fonction DDB

        INSERT INTO DDB ( cost salvage life factor amortiss period )

        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

        DDB(costsalvagelifeperiodfactor) AS amortiss period

        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

        68

        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

        nombres neacutegatifs

        Fonction PMT

        69

        Fonction PMT

        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

        Fonction PMT calcul dannuiteacute demprunt

        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

        preacutesentevaleur_payeacutee surprime

        -16049 005 20 200000 -320980 -120980

        70

        Placement agrave taux variable Somme et Fin sont les paramegravetres

        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

        Et les nuls que log ne supporte pas

        Anneacutee relative

        Taux

        1 4

        2 4

        3 3

        4 5

        5 5

        Voir + dans le livre laquo SQL Design Patterns raquo

        71

        GROUP BY Est une clause redondante avec le SELECT agrave sous-

        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

        est eacutequivalente agrave

        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

        WHERE XP = SPP) FROM SP

        Testez

        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

        72

        LIST Function La requecircte

        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

        Comme les tabulations croiseacutees

        ndash Mais en + simple

        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

        ndash En mono attribut (2004)

        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

        sous-formulaires

        73

        LIST Function

        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

        74

        GROUP BY avec WHERE

        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

        75

        GROUP BY

        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

        Pourquoi

        76

        GROUP BY avec HAVING

        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

        77

        T-GROUP BY Proposeacute pour SQL

        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

        Le rocircle de -join par rapport agrave equi-join

        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

        INT(AVG(QTY)) AS QTY2FROM SP

        T-GROUP (QT1 BY P QT2 BY ltgt P)

        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

        78

        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

        FROM SP Vrai ou Faux

        79

        T-GROUP BY

        Reacutesultat

        part avg_qty_other_parts part_avg_qty

        p1 250 300

        p2 262 250

        p3 245 400

        p4 260 250

        p5 260 250

        p6 272 100

        80

        T-GROUP BY

        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

        81

        Rangs Non-Denses(Non Dense Ranking)

        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

        s p qtyND-rank

        s4 p5 400 1

        s3 p2 400 1

        s1 p3 400 1

        s4 p4 300 4

        s2 p2 300 4

        s1 p1 300 4

        s4 p2 200 7

        s1 p4 200 7

        s1 p2 200 7

        s4 p1 200 7

        s1 p6 100 11

        s1 p5 100 11

        82

        Rangs Non-Denses(Graphique MsAccess)

        s p qty ND-rank

        s4 p5 400 1

        s3 p2 400 1

        s1 p3 400 1

        s4 p4 300 4

        s2 p2 300 4

        s1 p1 300 4

        s4 p2 200 7

        s1 p4 200 7

        s1 p2 200 7

        s4 p1 200 7

        s1 p6 100 11

        s1 p5 100 11

        83

        Rangs Denses(Dense Ranking)

        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

        s p qtyD-rank

        s1 p3 400 1

        s3 p2 400 1

        s4 p5 400 1

        s1 p1 300 2

        s2 p2 300 2

        s4 p4 300 2

        s1 p4 200 3

        s1 p2 200 3

        s4 p2 200 3

        s4 p1 200 3

        s1 p6 100 4

        s1 p5 100 4

        84

        Rangs DensesGraphique MsAccess

        s p qty D-rank

        s1 p3 400 1

        s3 p2 400 1

        s4 p5 400 1

        s1 p1 300 2

        s2 p2 300 2

        s4 p4 300 2

        s1 p4 200 3

        s1 p2 200 3

        s4 p2 200 3

        s4 p1 200 3

        s1 p6 100 4

        s1 p5 100 4

        85

        Distribution

        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

        86

        Reacutesultat

        s Distribution

        s1 0419

        s2 0097

        s3 0129

        s4 0355

        87

        Distribution Cumulative

        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

        FROM SP

        ORDER BY SP[s]

        88

        Reacutesultat

        sDistribution Cumuleacutee

        s1 0419

        s2 0516

        s3 0645

        s4 1

        89

        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

        - Un outil - Fonction scalaire IIF de SQL Access

        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

        - On peut alternativement utiliser UNION ou UNION ALL

        90

        CateacutegorisationSELECT S[S] SSName SStatus SCity

        IIf([status]lt30OKgood) AS IIfSimple

        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

        FROM S

        GROUP BY S[S] SSName SStatus SCity

        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

        s1 Smith Paris good good

        s2 Jones 100 london good VGood

        s3 Blake 30 Paris good good

        s4 Clark 10 london OK OK

        s5 Adams 30 Athens good good

        bull Notez le traitement du null

        91

        Cateacutegorisation Emploi alternatif drsquoUNION

        SELECT Ppname weight Very Heavy as Warning

        FROM P where weight gt 13

        union

        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

        UNION

        select Ppname weight Light as warn from p where weight lt 10

        ORDER BY warning DESC weight DESC

        pname weight Warning

        cam 19 Very Heavy

        cog 19 Very Heavy

        bolt 17 Very Heavy

        nut 14 Very Heavy

        screw 14 Very Heavy

        nut 14 Quite Heavy

        screw 14 Quite Heavy

        screw 12 Quite Heavy

        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

        92

        UNIONPreacutedictions de Valeurs Inconnues

        On considegravere AVG(Qty1) pour Qty

        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

        SP

        s p qtyQty1

        s1 p1 300 400

        s1 p2 200

        s1 p3 400 600

        s1 p4 200 300

        s1 p5 100

        s1 p6 100 200

        s2 p2 300 500

        s3 p2 400

        s4 p1 200 100

        s4 p2 200

        s4 p4 300

        s4 p5 400

        93

        UNIONPreacutediction de Valeurs Inconnues

        On peut compleacuteter SP par UPDATE SPReacutesultat

        SP

        s p qtyQty1

        s1 p1 300 400

        s1 p2 200

        s1 p3 400 600

        s1 p4 200 300

        s1 p5 100

        s1 p6 100 200

        s2 p2 300 500

        s3 p2 400

        s4 p1 200 100

        s4 p2 200

        s4 p4 300

        s4 p5 400

        qty for partpredicted or

        unknown Qty1

        100 p5

        100 predicted value 200

        200 p2

        200 predicted value 200

        300 p4

        300 predicted value 450

        400 p2

        400 p5

        400 predicted value 600

        94

        Tendance

        qty Qty1

        100 200

        200 300

        300 400

        400 600

        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

        SP est supposeacute avec la DF entre Qty et Qty1

        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

        Graph 3D avec Qty en abscisses

        95

        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

        30102008 120 27102008 4

        25102008 131 22102008 4

        23102008 127 20102008 4

        17102008 269 14102008 4

        15102008 60 12102008 4

        11102008 295 08102008 4

        09102008 340 06102008 4

        08102008 324 05102008 4

        06102008 315 03102008 4

        96

        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

        Graphique avec une info-bulle

        97

        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

        glissantes

        bull CSUM (Cumulative (Running) Sums)

        bull MAVG

        bull MSUM

        bull MDIFF

        bull Voir Teradata + loin

        98

        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

        On veut voir aussi le gain que T2 offrirait par rapport au T1

        99

        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

        Entiers est une table aux avec la colonne de12hellip10

        100

        Seacuteries financiegraveres

        capital taux nval apregraves n ans

        taux1val1 apregraves n ans

        GainAbs GainRel

        100 005 1 105 006 106 1 1

        100 005 2 110 006 112 2 2

        100 005 3 115 006 119 4 4

        100 005 4 121 006 126 5 5

        100 005 5 127 006 133 6 6

        100 005 6 134 006 141 7 7

        100 005 7 140 006 150 10 10

        100 005 8 147 006 159 12 12

        100 005 9 155 006 168 13 13

        100 005 10 162 006 179 17 17

        100 005 11 171 006 189 18 18

        100 005 12 179 006 201 22 22

        100 005 13 188 006 213 25 25

        100 005 14 197 006 226 29 29

        100 005 15 207 006 239 32 32

        100 005 16 218 006 254 36 36

        100 005 17 229 006 269 40 40

        100 005 18 240 006 285 45 45

        100 005 19 252 006 302 50 50

        100 005 20 265 006 320 55 55

        101

        Seacuteries financiegraveres

        102

        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

        financiers de la table Produits

        bull Dans la limite L de la somme donneacutee

        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

        bull En ordre descendant de prix

        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

        bull Plusieurs actionshellip

        103

        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

        P prix

        p3 200

        p1 200

        p2 400

        p3 200

        p4 100

        p6 100

        p5 300

        p8 300

        p7 400

        p10 200

        p12 300

        p13 300

        104

        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

        ORDER BY 4 desc 8 123

        105

        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

        106

        Creacuteation drsquoun Portefeuille Discussion

        Creacuteation drsquoun Portefeuille Discussion

        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

        107

        Creacuteation drsquoun Portefeuille Discussion

        Creacuteation drsquoun Portefeuille Discussion

        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

        108

        ROLLUP(DB2 amp SQL-Server)

        ROLLUP(DB2 amp SQL-Server)

        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

        109

        CUBE(DB2 amp SQL-Server)

        CUBE(DB2 amp SQL-Server)

        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

        110

        GROUPING SETS

        On indique explicitement les groupesndash entre ()

        le groupe () est constitueacute de toute la table

        SELECT p sum (qty) as tot-qty from SSP P

        WHERE SP P = PP AND SP S = SS

        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

        HAVING tot-qty gt 100

        Problegravemes avec des nuls que lrsquoon verra plus tard

        111

        Rollup Cube Grouping Setssous MsAccess

        Il y en a pas On peut simuler ces manipulations en

        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

        Peut ecirctre laborieux pour le CUBE

        112

        ROLLUP

        Remarquez le laquo null as cityraquo

        113

        ROLLUP

        114

        ROLLUP

        Et le CUBE

        Une solution pour l ambiguiumlteacute

        de certains nuls

        115

        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

        Wiley (publ)

        116

        Sous-Tables Parameacutetreacutees

        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

        117

        Sous-Tables Parameacutetreacutees

        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

        118

        Sous-Tables Parameacutetreacutees

        119

        Sous-Tables Parameacutetreacutees

        120

        Sous-Tables Parameacutetreacutees

        121

        Sous-Tables Parameacutetreacutees

        122

        Sous-Tables Parameacutetreacutees

        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

        123

        Sous-Tables Parameacutetreacutees

        Exeacutecution autonome

        124

        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

        ecirctre choisi que dans une ville drsquoun client de Northwind

        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

        hellip

        125

        Liste de Choix Multibase

        bull Requecircte Test-liste-de-choix mdb

        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

        126

        Liste de Choix MultibaseReacutesultat

        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

        Tregraves bonne question agrave Microsoft

        148

        FIN

        149

        • SQL Avanceacute 2010
        • Quoi amp Pourquoi
        • Slide 3
        • Synonymes
        • Noms dattributs
        • Slide 6
        • Slide 7
        • Slide 8
        • Insertion dans une Vue
        • Insertion dans une Vue (2)
        • MAJ drsquoune Vue MsAccess
        • MAJ drsquoune Vue MsAccess (2)
        • Suppression dans une Vue MsAccess
        • MsAccess Leacutegendes
        • Expressions de valeur
        • Expressions de valeur (2)
        • Pour en savoir + sur les attributs dynamiques
        • UNION et Noms Drsquoattributs
        • UNION et ORDER BY
        • ORDER BY et expressions de valeur
        • ORDER BY et expressions de valeur (2)
        • Ordre de prioriteacute dopeacuterations
        • Preacutedicat TOP
        • Preacutedicat TOP (2)
        • Clause BETWEEN
        • Limitations de NOT
        • ANY et ALL
        • Injection SQL
        • Injection SQL (2)
        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
        • Tabulations Croiseacutees
        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
        • Tabulations Croiseacutees (2)
        • Tabulations Croiseacutees (3)
        • Tabulations Croiseacutees (4)
        • Tabulations Croiseacutees (5)
        • XOR
        • IMP
        • Sous-requecirctes
        • Sous-requecirctes (2)
        • Sous-requecirctes (3)
        • Sous-requecirctes (4)
        • Sous-requecirctes (5)
        • Sous-requecirctes (6)
        • Sous-requecirctes (7)
        • Application aux Probabiliteacutes
        • Clause FROM imbriqueacutee
        • Clause FROM imbriqueacutee (2)
        • Clause FROM imbriqueacutee (3)
        • Clause FROM imbriqueacutee (4)
        • Clause FROM imbriqueacutee (5)
        • Clause FROM imbriqueacutee (6)
        • Valeurs nulles
        • Valeurs nulles (2)
        • Valeurs nulles (3)
        • Valeurs nulles (4)
        • Fonctions Scalaires DateTemps
        • Fonctions Scalaires DateTemps (2)
        • Fonctions Scalaires DateTemps (3)
        • Fonctions Scalaires DateTemps (4)
        • Fonctions Scalaires DateTemps (5)
        • Fonction Scalaire RND
        • Fonction Scalaire RND (2)
        • Fonctions Financiegraveres
        • Fonctions Financiegraveres (2)
        • Fonction DDB
        • Fonction DDB (2)
        • Fonction PMT
        • Fonction PMT (2)
        • Placement agrave taux variable
        • GROUP BY
        • LIST Function
        • LIST Function (2)
        • GROUP BY avec WHERE
        • GROUP BY (2)
        • GROUP BY avec HAVING
        • T-GROUP BY
        • T-GROUP BY (2)
        • T-GROUP BY (3)
        • T-GROUP BY (4)
        • Rangs Non-Denses (Non Dense Ranking)
        • Rangs Non-Denses (Graphique MsAccess)
        • Rangs Denses (Dense Ranking)
        • Rangs Denses Graphique MsAccess
        • Distribution
        • Reacutesultat
        • Distribution Cumulative
        • Reacutesultat (2)
        • Cateacutegorisation
        • Cateacutegorisation (2)
        • Cateacutegorisation (3)
        • UNION Preacutedictions de Valeurs Inconnues
        • UNION Preacutediction de Valeurs Inconnues
        • Tendance
        • Moyenne Glissante
        • Moyenne Glissante (2)
        • Moyenne Glissante (3)
        • Seacuteries financiegraveres
        • Seacuteries financiegraveres (2)
        • Seacuteries financiegraveres (3)
        • Seacuteries financiegraveres (4)
        • Creacuteation drsquoun Portefeuille
        • Creacuteation drsquoun Portefeuille (2)
        • Creacuteation drsquoun Portefeuille (3)
        • Creacuteation drsquoun Portefeuille (4)
        • Creacuteation drsquoun Portefeuille Discussion
        • Creacuteation drsquoun Portefeuille Discussion (2)
        • ROLLUP (DB2 amp SQL-Server)
        • CUBE (DB2 amp SQL-Server)
        • GROUPING SETS
        • Rollup Cube Grouping Sets sous MsAccess
        • Slide 112
        • Slide 113
        • Slide 114
        • Autres Opeacuterations Utiles
        • Sous-Tables Parameacutetreacutees
        • Sous-Tables Parameacutetreacutees (2)
        • Sous-Tables Parameacutetreacutees (3)
        • Sous-Tables Parameacutetreacutees (4)
        • Sous-Tables Parameacutetreacutees (5)
        • Sous-Tables Parameacutetreacutees (6)
        • Sous-Tables Parameacutetreacutees (7)
        • Sous-Tables Parameacutetreacutees (8)
        • Liste de Choix Multibase
        • Liste de Choix Multibase (2)
        • Liste de Choix Multibase Reacutesultat
        • FIN
        • Slide 149

          5

          Noms dattributs Peuvent contenir des blancs

          Nom de fournisseur (Oracle) Dans MSAccess

          [Nom de fournisseur]lsquorsquoNom de fournisseur rsquorsquo et lsquoNom de

          fournisseur rsquo dans constantes clause LIKEhellip Dans SQL Server [ ] impliquent le respect de la

          casse En geacuteneacuteral interdits

          95Bilan Commence avec un chiffreSELECT Datehellip Mots reacuteserveacutes[AB] et [AB] MsAccess ndash Comment faire si besoin

          6

          On peut inseacuterer de tuples dans une vue MsAccessndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

          Y compris externendash Lien classe ndash sous-classe

          ndash Le reacutesultat peut ecirctre lrsquoinsertion simultaneacutee dans plusieurs tables sources de la vue

          ndash Le tuple inseacutereacute en QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

          Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

          7

          Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

          Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

          Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

          8

          A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

          CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

          CITY [P] QTY FROM S SP

          Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

          9

          Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

          une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

          SELECT P Ville FROM P C WHERE PCpostal = CCpostal

          Avec

          P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

          Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

          10

          Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

          attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

          Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

          A expeacuterimenter sur MsAccess

          Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

          11

          MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

          ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

          Y compris externendash Lien classe ndash sous-classe

          ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

          A expeacuterimenter sur les vues SP1 et SP2

          12

          MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

          QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

          avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

          valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

          13

          Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

          vuendash Toute vue mono-table ou agrave un tuple de la vue

          correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

          Surprise ndash On insegravere un tuple dans une vue V agrave jointure

          INSERT Vhellip

          ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

          14

          MsAccess LeacutegendesMsAccess Leacutegendes

          La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

          Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

          SP

          s Product ID qty

          s1 p1 300

          s1 p2 200

          s1 p3 400

          s1 p4 200

          s1 p5 100

          s1 p6 100

          s2 p1 300

          hellip hellip hellip

          15

          Expressions de valeur Peuvent ecirctre des attr dynamiques

          imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

          Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

          SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

          Une bonne question pour Microsoft

          16

          Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

          reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

          vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

          les attributs du type texte soit a = 2 et b = 3ndash a+b 23

          Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

          Il faut la clause Parameters a int b int

          17

          Pour en savoir + sur les attributs dynamiques

          Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

          Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

          Voir le site du CERIA

          18

          UNION et Noms Drsquoattributs

          SELECT [s] FROM S

          Union

          SELECT [p] FROM p

          Quel nom drsquoattribut sera dans le reacutesultat

          Sous MSAccess Dans SQL Server MySQL Oraclehellip

          19

          UNION et ORDER BY

          SELECT [s] FROM S

          Union

          SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

          les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

          Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

          apregraves le 2egraveme SELECT

          20

          ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

          ORDER BY clauseORDER BY SAL - COMM

          Exceptions UNION MINUS INTERSECT

          Cette clause peut reacutefeacuterencer lattribut par position

          Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

          Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

          MsAccess

          21

          ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

          une expression qui nest pas dans SELECT clauseSelect S CITY

          FROM SORDER BY SNAME STATUS+50

          exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

          Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

          Essayez

          SELECT distinct sp[s]

          FROM sp

          ORDER BY spqty

          22

          Ordre de prioriteacute dopeacuterations

          1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

          2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

          [e][e]

          23

          Preacutedicat TOP

          SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

          SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

          SQL Server eacutequivalent de TOP drsquoAccess

          SELECT TOP hellip WITH TIES

          >

          24

          Preacutedicat TOP

          Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

          La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

          Pour seacutelectionner les tuples 303132

          LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

          Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

          >

          25

          Clause BETWEEN

          Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

          geacuteneacuteriques ndash contrairement agrave LIKE

          Quel sera le reacutesultat pour Jones et pourquoi

          SELECT FROM S where sname between b and J

          Et si on eacutecrit

          SELECT FROM S where sname between J and b

          ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

          26

          Limitations de NOT

          Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

          (SELECT CITY FROM S)

          Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

          Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

          Hypothegravese de Monde ouvert

          27

          ANY et ALL

          All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

          (SELECT STATUS FROM S WHERE SNAME = BNP)

          si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

          si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

          Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

          (SELECT STATUS FROM S WHERE SNAME = BNP)

          28

          Injection SQL On ajoute en fraude agrave une requecircte a priori en

          restriction une condition qui annule cette restriction

          Gros deacutegacircts sur le WEB notammentSELECT

          FROM S

          WHERE city=london Or True

          SQL Injection

          S SName Status City

          s1 smith Paris

          s2 Jones 100 london

          s3 Blake 30 Paris

          s4 Clark 10 london

          s5 Adams 30 Athens

          29

          Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

          True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

          SELECT

          FROM S

          WHERE status= 100 Or 200

          SELECT

          FROM S

          WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

          SELECT

          FROM S

          WHERE city=london Or 100

          30

          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

          Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

          BY et les valeurs individuelles en mecircme temps

          ndash Impossible avec SQL standard

          31

          S Total Qty p1 p2 p3 p4 p5 p6

          s1 1300 300 200 400 200 100 100

          s2 700 300 400

          s3 200 200

          s4 900 200 300 400

          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

          Tabulations Croiseacutees

          32

          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

          Transforment les valeurs dattributs en attributsndash Par exemple

          les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

          les valeurs de P1 P2 sont les QTY (par ex) correspondants

          33

          S Total Qty p1 p2 p3 p4 p5 p6

          s1 1300 300 200 400 200 100 100

          s2 700 300 400

          s3 200 200

          s4 900 200 300 400

          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

          Tabulations Croiseacutees

          34

          TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

          Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

          Tabulations Croiseacutees

          Nouvellescolonnes

          35

          La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

          On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

          Tabulations Croiseacutees

          36

          On peut utiliser la clause WHEREWHERE P IN (P1 P2)

          Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

          On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

          Mais cette clause naffecte pas les calculs des agreacutegats

          Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

          Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

          Tabulations Croiseacutees

          37

          XORSELECT S[S] SStatus SCity

          FROM S

          WHERE Status=10 Xor city=paris

          bull A noter le traitement du nul dans City

          38

          IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

          bull A noter le traitement du nul dans City

          39

          Sous-requecirctes

          A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

          clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

          rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

          sous-requecircte

          SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

          40

          Sous-requecirctes

          Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

          laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

          vite ou Livrerait au moins aussi vite mais en quantiteacute

          plus grande

          41

          Sous-requecirctes

          Skylinendash Tout objet non-domineacute (cacheacute

          totalement) par un autre

          SELECT X[s] X[p] qty delay

          FROM SP X

          where not exists

          (select from SP as Y

          where (Yqty gt= XQty and YDelay lt XDelay or

          Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

          order by X[p]

          42

          Sous-requecirctes Reacutesultat

          s p qty delay

          s1 p1 300 15

          s4 p1 200 13

          s3 p2 400 15

          s2 p2 300 12

          s1 p3 400 17

          s4 p4 300 11

          s4 p5 400 7

          s1 p6 100 8

          s p qty Delay

          s1 p1 300 15

          s1 p2 200 12

          s1 p3 400 17

          s1 p4 200 11

          s1 p5 100 7

          s1 p6 100 8

          s2 p2 300 12

          s3 p2 400 15

          s4 p1 200 13

          s4 p2 200 15

          s4 p4 300 11

          s4 p5 400 7

          S

          43

          Sous-requecirctes

          On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

          SELECT Count() AS TotalQty

          FROM (select distinct qty from sp)

          On peut aussi avoir une sous-requecircte dans la clause SELECT

          SELECT SP[s] SP[p] qty

          (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

          round(qtyTotalQty 3) AS Fraction

          FROM SP order by [s]

          44

          Sous-requecirctes

          s p qty TotalQty Fraction

          s1 p1 300 1300 0231

          s1 p6 100 1300 0077

          s1 p5 100 1300 0077

          s1 p4 200 1300 0154

          s1 p3 400 1300 0308

          s1 p2 200 1300 0154

          s2 p2 300 300 1

          s3 p2 400 400 1

          s4 p5 400 1100 0364

          s4 p4 300 1100 0273

          s4 p2 200 1100 0182

          bull ReacutesultatSP

          s p qty

          s1 p1 300

          s1 p2 200

          s1 p3 400

          s1 p4 200

          s1 p5 100

          s1 p6 100

          s2 p2 300

          s3 p2 400

          s4 p1 200

          s4 p2 200

          s4 p4 300

          s4 p5 400

          45

          Sous-requecirctesbull En Mode Graphique

          s p qtyTotalQty

          Fraction

          s1 p1 300 1300 0231

          s1 p6 100 1300 0077

          s1 p5 100 1300 0077

          s1 p4 200 1300 0154

          s1 p3 400 1300 0308

          s1 p2 200 1300 0154

          s2 p2 300 300 1

          s3 p2 400 400 1

          s4 p5 400 1100 0364

          s4 p4 300 1100 0273

          s4 p2 200 1100 0182

          46

          Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

          SELECT (select count(qty) from SP

          where qty gt= [seuil svp ]) count() as reacutesultat

          FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

          probabiliteacute conditionnelle

          47

          Clause FROM imbriqueacutee

          Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

          Select attrshellipFROM [tbls] (SQL-Select) Where hellip

          Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

          Agrave essayer

          48

          Clause FROM imbriqueacuteePossibiliteacutes

          ndash Agreacutegations par-dessus UNION ou UNION ALL

          ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

          MsAccess

          ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

          Mais la reacutefeacuterence au nom de la requecircte OK

          49

          Clause FROM imbriqueacutee

          SELECT sum(weight) AS [poids-total]

          FROM (SELECT weight pcity FROM P WHERE City like l

          UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

          50

          Clause FROM imbriqueacutee

          select avg(moy1) as [moyenne-des-moyennes]

          FROM

          (SELECT avg(weight) as moy1 FROM P WHERE City like l

          UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

          51

          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

          select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

          52

          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

          totaux partiels et total geacuteneacuteral

          total_Id TotalQty

          s1 1300

          s2 300

          s3 400

          s4 400

          total Geacuteneacuteral

          2400

          53

          Valeurs nulles

          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

          Non WHERE HAVING GROUP BY (rel 1)

          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

          MsAccess Oui DISTINCT Autres clauses

          54

          Valeurs nulles Si x est nul et y nrsquoest pas alors

          1 x gt y est vrai ou faux

          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

          SELECT FROM S WHERE CITY =Paris

          UNION

          SELECT FROM S WHERE NOT CITY = Paris

          est toujours pourquoi faire simpleSELECT FROM S

          si on peut faire compliqueacute

          55

          Valeurs nullesValeurs nulles

          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

          56

          Valeurs nulles

          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

          LOG (nul) -gt Error A voir cas par cas

          57

          Fonctions Scalaires DateTemps

          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

          58

          Fonctions Scalaires DateTemps

          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

          weekday(day(now())-1) AS [day]FROM S

          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

          59

          Fonctions Scalaires DateTemps

          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

          Interval Explanation

          Yyyy Year

          q Quarter

          m Month

          y Day of year

          d Day

          w Weekday

          ww Week

          h Hour

          n Minute

          s Second

          60

          Fonctions Scalaires DateTemps

          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

          Test DateDiff

          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

          61

          Fonctions Scalaires DateTemps

          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

          Liste tous les tuples ougrave DateV est de Janvier 2009

          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

          62

          Fonction Scalaire RND

          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

          FROM SPORDER BY rnd(qty) DESC

          echantillon s rank

          s1 502628087997437E-02

          s4 0518015921115875

          s3 075702953338623

          63

          Fonction Scalaire RND

          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

          FROM SPORDER BY rnd(qty) DESC

          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

          Votre commentaire ici

          64

          Fonctions Financiegraveres

          Fonction DDB Calcule lamortissement deacutegressif

          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

          65

          Fonctions Financiegraveres

          Fonction DDB Calcule lamortissement deacutegressif

          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

          66

          Fonction DDB

          insert into DDB (cost salvage life factor amortiss period)

          select 100 as cost 70 as salvage 5 as life 1 as factor

          DDB(cost salvage life period factor) as amortiss period

          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

          67

          Fonction DDB

          INSERT INTO DDB ( cost salvage life factor amortiss period )

          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

          DDB(costsalvagelifeperiodfactor) AS amortiss period

          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

          68

          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

          nombres neacutegatifs

          Fonction PMT

          69

          Fonction PMT

          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

          Fonction PMT calcul dannuiteacute demprunt

          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

          preacutesentevaleur_payeacutee surprime

          -16049 005 20 200000 -320980 -120980

          70

          Placement agrave taux variable Somme et Fin sont les paramegravetres

          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

          Et les nuls que log ne supporte pas

          Anneacutee relative

          Taux

          1 4

          2 4

          3 3

          4 5

          5 5

          Voir + dans le livre laquo SQL Design Patterns raquo

          71

          GROUP BY Est une clause redondante avec le SELECT agrave sous-

          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

          est eacutequivalente agrave

          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

          WHERE XP = SPP) FROM SP

          Testez

          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

          72

          LIST Function La requecircte

          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

          Comme les tabulations croiseacutees

          ndash Mais en + simple

          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

          ndash En mono attribut (2004)

          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

          sous-formulaires

          73

          LIST Function

          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

          74

          GROUP BY avec WHERE

          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

          75

          GROUP BY

          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

          Pourquoi

          76

          GROUP BY avec HAVING

          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

          77

          T-GROUP BY Proposeacute pour SQL

          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

          Le rocircle de -join par rapport agrave equi-join

          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

          INT(AVG(QTY)) AS QTY2FROM SP

          T-GROUP (QT1 BY P QT2 BY ltgt P)

          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

          78

          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

          FROM SP Vrai ou Faux

          79

          T-GROUP BY

          Reacutesultat

          part avg_qty_other_parts part_avg_qty

          p1 250 300

          p2 262 250

          p3 245 400

          p4 260 250

          p5 260 250

          p6 272 100

          80

          T-GROUP BY

          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

          81

          Rangs Non-Denses(Non Dense Ranking)

          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

          s p qtyND-rank

          s4 p5 400 1

          s3 p2 400 1

          s1 p3 400 1

          s4 p4 300 4

          s2 p2 300 4

          s1 p1 300 4

          s4 p2 200 7

          s1 p4 200 7

          s1 p2 200 7

          s4 p1 200 7

          s1 p6 100 11

          s1 p5 100 11

          82

          Rangs Non-Denses(Graphique MsAccess)

          s p qty ND-rank

          s4 p5 400 1

          s3 p2 400 1

          s1 p3 400 1

          s4 p4 300 4

          s2 p2 300 4

          s1 p1 300 4

          s4 p2 200 7

          s1 p4 200 7

          s1 p2 200 7

          s4 p1 200 7

          s1 p6 100 11

          s1 p5 100 11

          83

          Rangs Denses(Dense Ranking)

          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

          s p qtyD-rank

          s1 p3 400 1

          s3 p2 400 1

          s4 p5 400 1

          s1 p1 300 2

          s2 p2 300 2

          s4 p4 300 2

          s1 p4 200 3

          s1 p2 200 3

          s4 p2 200 3

          s4 p1 200 3

          s1 p6 100 4

          s1 p5 100 4

          84

          Rangs DensesGraphique MsAccess

          s p qty D-rank

          s1 p3 400 1

          s3 p2 400 1

          s4 p5 400 1

          s1 p1 300 2

          s2 p2 300 2

          s4 p4 300 2

          s1 p4 200 3

          s1 p2 200 3

          s4 p2 200 3

          s4 p1 200 3

          s1 p6 100 4

          s1 p5 100 4

          85

          Distribution

          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

          86

          Reacutesultat

          s Distribution

          s1 0419

          s2 0097

          s3 0129

          s4 0355

          87

          Distribution Cumulative

          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

          FROM SP

          ORDER BY SP[s]

          88

          Reacutesultat

          sDistribution Cumuleacutee

          s1 0419

          s2 0516

          s3 0645

          s4 1

          89

          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

          - Un outil - Fonction scalaire IIF de SQL Access

          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

          - On peut alternativement utiliser UNION ou UNION ALL

          90

          CateacutegorisationSELECT S[S] SSName SStatus SCity

          IIf([status]lt30OKgood) AS IIfSimple

          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

          FROM S

          GROUP BY S[S] SSName SStatus SCity

          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

          s1 Smith Paris good good

          s2 Jones 100 london good VGood

          s3 Blake 30 Paris good good

          s4 Clark 10 london OK OK

          s5 Adams 30 Athens good good

          bull Notez le traitement du null

          91

          Cateacutegorisation Emploi alternatif drsquoUNION

          SELECT Ppname weight Very Heavy as Warning

          FROM P where weight gt 13

          union

          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

          UNION

          select Ppname weight Light as warn from p where weight lt 10

          ORDER BY warning DESC weight DESC

          pname weight Warning

          cam 19 Very Heavy

          cog 19 Very Heavy

          bolt 17 Very Heavy

          nut 14 Very Heavy

          screw 14 Very Heavy

          nut 14 Quite Heavy

          screw 14 Quite Heavy

          screw 12 Quite Heavy

          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

          92

          UNIONPreacutedictions de Valeurs Inconnues

          On considegravere AVG(Qty1) pour Qty

          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

          SP

          s p qtyQty1

          s1 p1 300 400

          s1 p2 200

          s1 p3 400 600

          s1 p4 200 300

          s1 p5 100

          s1 p6 100 200

          s2 p2 300 500

          s3 p2 400

          s4 p1 200 100

          s4 p2 200

          s4 p4 300

          s4 p5 400

          93

          UNIONPreacutediction de Valeurs Inconnues

          On peut compleacuteter SP par UPDATE SPReacutesultat

          SP

          s p qtyQty1

          s1 p1 300 400

          s1 p2 200

          s1 p3 400 600

          s1 p4 200 300

          s1 p5 100

          s1 p6 100 200

          s2 p2 300 500

          s3 p2 400

          s4 p1 200 100

          s4 p2 200

          s4 p4 300

          s4 p5 400

          qty for partpredicted or

          unknown Qty1

          100 p5

          100 predicted value 200

          200 p2

          200 predicted value 200

          300 p4

          300 predicted value 450

          400 p2

          400 p5

          400 predicted value 600

          94

          Tendance

          qty Qty1

          100 200

          200 300

          300 400

          400 600

          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

          SP est supposeacute avec la DF entre Qty et Qty1

          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

          Graph 3D avec Qty en abscisses

          95

          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

          30102008 120 27102008 4

          25102008 131 22102008 4

          23102008 127 20102008 4

          17102008 269 14102008 4

          15102008 60 12102008 4

          11102008 295 08102008 4

          09102008 340 06102008 4

          08102008 324 05102008 4

          06102008 315 03102008 4

          96

          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

          Graphique avec une info-bulle

          97

          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

          glissantes

          bull CSUM (Cumulative (Running) Sums)

          bull MAVG

          bull MSUM

          bull MDIFF

          bull Voir Teradata + loin

          98

          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

          On veut voir aussi le gain que T2 offrirait par rapport au T1

          99

          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

          Entiers est une table aux avec la colonne de12hellip10

          100

          Seacuteries financiegraveres

          capital taux nval apregraves n ans

          taux1val1 apregraves n ans

          GainAbs GainRel

          100 005 1 105 006 106 1 1

          100 005 2 110 006 112 2 2

          100 005 3 115 006 119 4 4

          100 005 4 121 006 126 5 5

          100 005 5 127 006 133 6 6

          100 005 6 134 006 141 7 7

          100 005 7 140 006 150 10 10

          100 005 8 147 006 159 12 12

          100 005 9 155 006 168 13 13

          100 005 10 162 006 179 17 17

          100 005 11 171 006 189 18 18

          100 005 12 179 006 201 22 22

          100 005 13 188 006 213 25 25

          100 005 14 197 006 226 29 29

          100 005 15 207 006 239 32 32

          100 005 16 218 006 254 36 36

          100 005 17 229 006 269 40 40

          100 005 18 240 006 285 45 45

          100 005 19 252 006 302 50 50

          100 005 20 265 006 320 55 55

          101

          Seacuteries financiegraveres

          102

          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

          financiers de la table Produits

          bull Dans la limite L de la somme donneacutee

          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

          bull En ordre descendant de prix

          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

          bull Plusieurs actionshellip

          103

          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

          P prix

          p3 200

          p1 200

          p2 400

          p3 200

          p4 100

          p6 100

          p5 300

          p8 300

          p7 400

          p10 200

          p12 300

          p13 300

          104

          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

          ORDER BY 4 desc 8 123

          105

          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

          106

          Creacuteation drsquoun Portefeuille Discussion

          Creacuteation drsquoun Portefeuille Discussion

          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

          107

          Creacuteation drsquoun Portefeuille Discussion

          Creacuteation drsquoun Portefeuille Discussion

          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

          108

          ROLLUP(DB2 amp SQL-Server)

          ROLLUP(DB2 amp SQL-Server)

          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

          109

          CUBE(DB2 amp SQL-Server)

          CUBE(DB2 amp SQL-Server)

          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

          110

          GROUPING SETS

          On indique explicitement les groupesndash entre ()

          le groupe () est constitueacute de toute la table

          SELECT p sum (qty) as tot-qty from SSP P

          WHERE SP P = PP AND SP S = SS

          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

          HAVING tot-qty gt 100

          Problegravemes avec des nuls que lrsquoon verra plus tard

          111

          Rollup Cube Grouping Setssous MsAccess

          Il y en a pas On peut simuler ces manipulations en

          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

          Peut ecirctre laborieux pour le CUBE

          112

          ROLLUP

          Remarquez le laquo null as cityraquo

          113

          ROLLUP

          114

          ROLLUP

          Et le CUBE

          Une solution pour l ambiguiumlteacute

          de certains nuls

          115

          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

          Wiley (publ)

          116

          Sous-Tables Parameacutetreacutees

          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

          117

          Sous-Tables Parameacutetreacutees

          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

          118

          Sous-Tables Parameacutetreacutees

          119

          Sous-Tables Parameacutetreacutees

          120

          Sous-Tables Parameacutetreacutees

          121

          Sous-Tables Parameacutetreacutees

          122

          Sous-Tables Parameacutetreacutees

          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

          123

          Sous-Tables Parameacutetreacutees

          Exeacutecution autonome

          124

          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

          ecirctre choisi que dans une ville drsquoun client de Northwind

          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

          hellip

          125

          Liste de Choix Multibase

          bull Requecircte Test-liste-de-choix mdb

          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

          126

          Liste de Choix MultibaseReacutesultat

          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

          Tregraves bonne question agrave Microsoft

          148

          FIN

          149

          • SQL Avanceacute 2010
          • Quoi amp Pourquoi
          • Slide 3
          • Synonymes
          • Noms dattributs
          • Slide 6
          • Slide 7
          • Slide 8
          • Insertion dans une Vue
          • Insertion dans une Vue (2)
          • MAJ drsquoune Vue MsAccess
          • MAJ drsquoune Vue MsAccess (2)
          • Suppression dans une Vue MsAccess
          • MsAccess Leacutegendes
          • Expressions de valeur
          • Expressions de valeur (2)
          • Pour en savoir + sur les attributs dynamiques
          • UNION et Noms Drsquoattributs
          • UNION et ORDER BY
          • ORDER BY et expressions de valeur
          • ORDER BY et expressions de valeur (2)
          • Ordre de prioriteacute dopeacuterations
          • Preacutedicat TOP
          • Preacutedicat TOP (2)
          • Clause BETWEEN
          • Limitations de NOT
          • ANY et ALL
          • Injection SQL
          • Injection SQL (2)
          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
          • Tabulations Croiseacutees
          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
          • Tabulations Croiseacutees (2)
          • Tabulations Croiseacutees (3)
          • Tabulations Croiseacutees (4)
          • Tabulations Croiseacutees (5)
          • XOR
          • IMP
          • Sous-requecirctes
          • Sous-requecirctes (2)
          • Sous-requecirctes (3)
          • Sous-requecirctes (4)
          • Sous-requecirctes (5)
          • Sous-requecirctes (6)
          • Sous-requecirctes (7)
          • Application aux Probabiliteacutes
          • Clause FROM imbriqueacutee
          • Clause FROM imbriqueacutee (2)
          • Clause FROM imbriqueacutee (3)
          • Clause FROM imbriqueacutee (4)
          • Clause FROM imbriqueacutee (5)
          • Clause FROM imbriqueacutee (6)
          • Valeurs nulles
          • Valeurs nulles (2)
          • Valeurs nulles (3)
          • Valeurs nulles (4)
          • Fonctions Scalaires DateTemps
          • Fonctions Scalaires DateTemps (2)
          • Fonctions Scalaires DateTemps (3)
          • Fonctions Scalaires DateTemps (4)
          • Fonctions Scalaires DateTemps (5)
          • Fonction Scalaire RND
          • Fonction Scalaire RND (2)
          • Fonctions Financiegraveres
          • Fonctions Financiegraveres (2)
          • Fonction DDB
          • Fonction DDB (2)
          • Fonction PMT
          • Fonction PMT (2)
          • Placement agrave taux variable
          • GROUP BY
          • LIST Function
          • LIST Function (2)
          • GROUP BY avec WHERE
          • GROUP BY (2)
          • GROUP BY avec HAVING
          • T-GROUP BY
          • T-GROUP BY (2)
          • T-GROUP BY (3)
          • T-GROUP BY (4)
          • Rangs Non-Denses (Non Dense Ranking)
          • Rangs Non-Denses (Graphique MsAccess)
          • Rangs Denses (Dense Ranking)
          • Rangs Denses Graphique MsAccess
          • Distribution
          • Reacutesultat
          • Distribution Cumulative
          • Reacutesultat (2)
          • Cateacutegorisation
          • Cateacutegorisation (2)
          • Cateacutegorisation (3)
          • UNION Preacutedictions de Valeurs Inconnues
          • UNION Preacutediction de Valeurs Inconnues
          • Tendance
          • Moyenne Glissante
          • Moyenne Glissante (2)
          • Moyenne Glissante (3)
          • Seacuteries financiegraveres
          • Seacuteries financiegraveres (2)
          • Seacuteries financiegraveres (3)
          • Seacuteries financiegraveres (4)
          • Creacuteation drsquoun Portefeuille
          • Creacuteation drsquoun Portefeuille (2)
          • Creacuteation drsquoun Portefeuille (3)
          • Creacuteation drsquoun Portefeuille (4)
          • Creacuteation drsquoun Portefeuille Discussion
          • Creacuteation drsquoun Portefeuille Discussion (2)
          • ROLLUP (DB2 amp SQL-Server)
          • CUBE (DB2 amp SQL-Server)
          • GROUPING SETS
          • Rollup Cube Grouping Sets sous MsAccess
          • Slide 112
          • Slide 113
          • Slide 114
          • Autres Opeacuterations Utiles
          • Sous-Tables Parameacutetreacutees
          • Sous-Tables Parameacutetreacutees (2)
          • Sous-Tables Parameacutetreacutees (3)
          • Sous-Tables Parameacutetreacutees (4)
          • Sous-Tables Parameacutetreacutees (5)
          • Sous-Tables Parameacutetreacutees (6)
          • Sous-Tables Parameacutetreacutees (7)
          • Sous-Tables Parameacutetreacutees (8)
          • Liste de Choix Multibase
          • Liste de Choix Multibase (2)
          • Liste de Choix Multibase Reacutesultat
          • FIN
          • Slide 149

            6

            On peut inseacuterer de tuples dans une vue MsAccessndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

            Y compris externendash Lien classe ndash sous-classe

            ndash Le reacutesultat peut ecirctre lrsquoinsertion simultaneacutee dans plusieurs tables sources de la vue

            ndash Le tuple inseacutereacute en QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

            Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

            7

            Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

            Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

            Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

            8

            A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

            CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

            CITY [P] QTY FROM S SP

            Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

            9

            Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

            une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

            SELECT P Ville FROM P C WHERE PCpostal = CCpostal

            Avec

            P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

            Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

            10

            Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

            attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

            Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

            A expeacuterimenter sur MsAccess

            Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

            11

            MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

            ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

            Y compris externendash Lien classe ndash sous-classe

            ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

            A expeacuterimenter sur les vues SP1 et SP2

            12

            MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

            QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

            avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

            valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

            13

            Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

            vuendash Toute vue mono-table ou agrave un tuple de la vue

            correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

            Surprise ndash On insegravere un tuple dans une vue V agrave jointure

            INSERT Vhellip

            ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

            14

            MsAccess LeacutegendesMsAccess Leacutegendes

            La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

            Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

            SP

            s Product ID qty

            s1 p1 300

            s1 p2 200

            s1 p3 400

            s1 p4 200

            s1 p5 100

            s1 p6 100

            s2 p1 300

            hellip hellip hellip

            15

            Expressions de valeur Peuvent ecirctre des attr dynamiques

            imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

            Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

            SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

            Une bonne question pour Microsoft

            16

            Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

            reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

            vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

            les attributs du type texte soit a = 2 et b = 3ndash a+b 23

            Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

            Il faut la clause Parameters a int b int

            17

            Pour en savoir + sur les attributs dynamiques

            Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

            Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

            Voir le site du CERIA

            18

            UNION et Noms Drsquoattributs

            SELECT [s] FROM S

            Union

            SELECT [p] FROM p

            Quel nom drsquoattribut sera dans le reacutesultat

            Sous MSAccess Dans SQL Server MySQL Oraclehellip

            19

            UNION et ORDER BY

            SELECT [s] FROM S

            Union

            SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

            les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

            Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

            apregraves le 2egraveme SELECT

            20

            ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

            ORDER BY clauseORDER BY SAL - COMM

            Exceptions UNION MINUS INTERSECT

            Cette clause peut reacutefeacuterencer lattribut par position

            Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

            Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

            MsAccess

            21

            ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

            une expression qui nest pas dans SELECT clauseSelect S CITY

            FROM SORDER BY SNAME STATUS+50

            exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

            Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

            Essayez

            SELECT distinct sp[s]

            FROM sp

            ORDER BY spqty

            22

            Ordre de prioriteacute dopeacuterations

            1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

            2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

            [e][e]

            23

            Preacutedicat TOP

            SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

            SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

            SQL Server eacutequivalent de TOP drsquoAccess

            SELECT TOP hellip WITH TIES

            >

            24

            Preacutedicat TOP

            Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

            La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

            Pour seacutelectionner les tuples 303132

            LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

            Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

            >

            25

            Clause BETWEEN

            Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

            geacuteneacuteriques ndash contrairement agrave LIKE

            Quel sera le reacutesultat pour Jones et pourquoi

            SELECT FROM S where sname between b and J

            Et si on eacutecrit

            SELECT FROM S where sname between J and b

            ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

            26

            Limitations de NOT

            Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

            (SELECT CITY FROM S)

            Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

            Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

            Hypothegravese de Monde ouvert

            27

            ANY et ALL

            All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

            (SELECT STATUS FROM S WHERE SNAME = BNP)

            si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

            si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

            Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

            (SELECT STATUS FROM S WHERE SNAME = BNP)

            28

            Injection SQL On ajoute en fraude agrave une requecircte a priori en

            restriction une condition qui annule cette restriction

            Gros deacutegacircts sur le WEB notammentSELECT

            FROM S

            WHERE city=london Or True

            SQL Injection

            S SName Status City

            s1 smith Paris

            s2 Jones 100 london

            s3 Blake 30 Paris

            s4 Clark 10 london

            s5 Adams 30 Athens

            29

            Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

            True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

            SELECT

            FROM S

            WHERE status= 100 Or 200

            SELECT

            FROM S

            WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

            SELECT

            FROM S

            WHERE city=london Or 100

            30

            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

            Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

            BY et les valeurs individuelles en mecircme temps

            ndash Impossible avec SQL standard

            31

            S Total Qty p1 p2 p3 p4 p5 p6

            s1 1300 300 200 400 200 100 100

            s2 700 300 400

            s3 200 200

            s4 900 200 300 400

            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

            Tabulations Croiseacutees

            32

            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

            Transforment les valeurs dattributs en attributsndash Par exemple

            les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

            les valeurs de P1 P2 sont les QTY (par ex) correspondants

            33

            S Total Qty p1 p2 p3 p4 p5 p6

            s1 1300 300 200 400 200 100 100

            s2 700 300 400

            s3 200 200

            s4 900 200 300 400

            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

            Tabulations Croiseacutees

            34

            TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

            Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

            Tabulations Croiseacutees

            Nouvellescolonnes

            35

            La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

            On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

            Tabulations Croiseacutees

            36

            On peut utiliser la clause WHEREWHERE P IN (P1 P2)

            Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

            On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

            Mais cette clause naffecte pas les calculs des agreacutegats

            Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

            Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

            Tabulations Croiseacutees

            37

            XORSELECT S[S] SStatus SCity

            FROM S

            WHERE Status=10 Xor city=paris

            bull A noter le traitement du nul dans City

            38

            IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

            bull A noter le traitement du nul dans City

            39

            Sous-requecirctes

            A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

            clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

            rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

            sous-requecircte

            SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

            40

            Sous-requecirctes

            Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

            laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

            vite ou Livrerait au moins aussi vite mais en quantiteacute

            plus grande

            41

            Sous-requecirctes

            Skylinendash Tout objet non-domineacute (cacheacute

            totalement) par un autre

            SELECT X[s] X[p] qty delay

            FROM SP X

            where not exists

            (select from SP as Y

            where (Yqty gt= XQty and YDelay lt XDelay or

            Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

            order by X[p]

            42

            Sous-requecirctes Reacutesultat

            s p qty delay

            s1 p1 300 15

            s4 p1 200 13

            s3 p2 400 15

            s2 p2 300 12

            s1 p3 400 17

            s4 p4 300 11

            s4 p5 400 7

            s1 p6 100 8

            s p qty Delay

            s1 p1 300 15

            s1 p2 200 12

            s1 p3 400 17

            s1 p4 200 11

            s1 p5 100 7

            s1 p6 100 8

            s2 p2 300 12

            s3 p2 400 15

            s4 p1 200 13

            s4 p2 200 15

            s4 p4 300 11

            s4 p5 400 7

            S

            43

            Sous-requecirctes

            On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

            SELECT Count() AS TotalQty

            FROM (select distinct qty from sp)

            On peut aussi avoir une sous-requecircte dans la clause SELECT

            SELECT SP[s] SP[p] qty

            (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

            round(qtyTotalQty 3) AS Fraction

            FROM SP order by [s]

            44

            Sous-requecirctes

            s p qty TotalQty Fraction

            s1 p1 300 1300 0231

            s1 p6 100 1300 0077

            s1 p5 100 1300 0077

            s1 p4 200 1300 0154

            s1 p3 400 1300 0308

            s1 p2 200 1300 0154

            s2 p2 300 300 1

            s3 p2 400 400 1

            s4 p5 400 1100 0364

            s4 p4 300 1100 0273

            s4 p2 200 1100 0182

            bull ReacutesultatSP

            s p qty

            s1 p1 300

            s1 p2 200

            s1 p3 400

            s1 p4 200

            s1 p5 100

            s1 p6 100

            s2 p2 300

            s3 p2 400

            s4 p1 200

            s4 p2 200

            s4 p4 300

            s4 p5 400

            45

            Sous-requecirctesbull En Mode Graphique

            s p qtyTotalQty

            Fraction

            s1 p1 300 1300 0231

            s1 p6 100 1300 0077

            s1 p5 100 1300 0077

            s1 p4 200 1300 0154

            s1 p3 400 1300 0308

            s1 p2 200 1300 0154

            s2 p2 300 300 1

            s3 p2 400 400 1

            s4 p5 400 1100 0364

            s4 p4 300 1100 0273

            s4 p2 200 1100 0182

            46

            Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

            SELECT (select count(qty) from SP

            where qty gt= [seuil svp ]) count() as reacutesultat

            FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

            probabiliteacute conditionnelle

            47

            Clause FROM imbriqueacutee

            Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

            Select attrshellipFROM [tbls] (SQL-Select) Where hellip

            Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

            Agrave essayer

            48

            Clause FROM imbriqueacuteePossibiliteacutes

            ndash Agreacutegations par-dessus UNION ou UNION ALL

            ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

            MsAccess

            ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

            Mais la reacutefeacuterence au nom de la requecircte OK

            49

            Clause FROM imbriqueacutee

            SELECT sum(weight) AS [poids-total]

            FROM (SELECT weight pcity FROM P WHERE City like l

            UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

            50

            Clause FROM imbriqueacutee

            select avg(moy1) as [moyenne-des-moyennes]

            FROM

            (SELECT avg(weight) as moy1 FROM P WHERE City like l

            UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

            51

            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

            select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

            52

            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

            totaux partiels et total geacuteneacuteral

            total_Id TotalQty

            s1 1300

            s2 300

            s3 400

            s4 400

            total Geacuteneacuteral

            2400

            53

            Valeurs nulles

            Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

            En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

            DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

            Non WHERE HAVING GROUP BY (rel 1)

            Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

            MsAccess Oui DISTINCT Autres clauses

            54

            Valeurs nulles Si x est nul et y nrsquoest pas alors

            1 x gt y est vrai ou faux

            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

            SELECT FROM S WHERE CITY =Paris

            UNION

            SELECT FROM S WHERE NOT CITY = Paris

            est toujours pourquoi faire simpleSELECT FROM S

            si on peut faire compliqueacute

            55

            Valeurs nullesValeurs nulles

            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

            56

            Valeurs nulles

            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

            LOG (nul) -gt Error A voir cas par cas

            57

            Fonctions Scalaires DateTemps

            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

            58

            Fonctions Scalaires DateTemps

            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

            weekday(day(now())-1) AS [day]FROM S

            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

            59

            Fonctions Scalaires DateTemps

            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

            Interval Explanation

            Yyyy Year

            q Quarter

            m Month

            y Day of year

            d Day

            w Weekday

            ww Week

            h Hour

            n Minute

            s Second

            60

            Fonctions Scalaires DateTemps

            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

            Test DateDiff

            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

            61

            Fonctions Scalaires DateTemps

            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

            Liste tous les tuples ougrave DateV est de Janvier 2009

            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

            62

            Fonction Scalaire RND

            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

            FROM SPORDER BY rnd(qty) DESC

            echantillon s rank

            s1 502628087997437E-02

            s4 0518015921115875

            s3 075702953338623

            63

            Fonction Scalaire RND

            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

            FROM SPORDER BY rnd(qty) DESC

            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

            Votre commentaire ici

            64

            Fonctions Financiegraveres

            Fonction DDB Calcule lamortissement deacutegressif

            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

            65

            Fonctions Financiegraveres

            Fonction DDB Calcule lamortissement deacutegressif

            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

            66

            Fonction DDB

            insert into DDB (cost salvage life factor amortiss period)

            select 100 as cost 70 as salvage 5 as life 1 as factor

            DDB(cost salvage life period factor) as amortiss period

            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

            67

            Fonction DDB

            INSERT INTO DDB ( cost salvage life factor amortiss period )

            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

            DDB(costsalvagelifeperiodfactor) AS amortiss period

            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

            68

            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

            nombres neacutegatifs

            Fonction PMT

            69

            Fonction PMT

            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

            Fonction PMT calcul dannuiteacute demprunt

            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

            preacutesentevaleur_payeacutee surprime

            -16049 005 20 200000 -320980 -120980

            70

            Placement agrave taux variable Somme et Fin sont les paramegravetres

            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

            Et les nuls que log ne supporte pas

            Anneacutee relative

            Taux

            1 4

            2 4

            3 3

            4 5

            5 5

            Voir + dans le livre laquo SQL Design Patterns raquo

            71

            GROUP BY Est une clause redondante avec le SELECT agrave sous-

            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

            est eacutequivalente agrave

            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

            WHERE XP = SPP) FROM SP

            Testez

            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

            72

            LIST Function La requecircte

            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

            Comme les tabulations croiseacutees

            ndash Mais en + simple

            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

            ndash En mono attribut (2004)

            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

            sous-formulaires

            73

            LIST Function

            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

            74

            GROUP BY avec WHERE

            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

            75

            GROUP BY

            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

            Pourquoi

            76

            GROUP BY avec HAVING

            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

            77

            T-GROUP BY Proposeacute pour SQL

            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

            Le rocircle de -join par rapport agrave equi-join

            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

            INT(AVG(QTY)) AS QTY2FROM SP

            T-GROUP (QT1 BY P QT2 BY ltgt P)

            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

            78

            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

            FROM SP Vrai ou Faux

            79

            T-GROUP BY

            Reacutesultat

            part avg_qty_other_parts part_avg_qty

            p1 250 300

            p2 262 250

            p3 245 400

            p4 260 250

            p5 260 250

            p6 272 100

            80

            T-GROUP BY

            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

            81

            Rangs Non-Denses(Non Dense Ranking)

            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

            s p qtyND-rank

            s4 p5 400 1

            s3 p2 400 1

            s1 p3 400 1

            s4 p4 300 4

            s2 p2 300 4

            s1 p1 300 4

            s4 p2 200 7

            s1 p4 200 7

            s1 p2 200 7

            s4 p1 200 7

            s1 p6 100 11

            s1 p5 100 11

            82

            Rangs Non-Denses(Graphique MsAccess)

            s p qty ND-rank

            s4 p5 400 1

            s3 p2 400 1

            s1 p3 400 1

            s4 p4 300 4

            s2 p2 300 4

            s1 p1 300 4

            s4 p2 200 7

            s1 p4 200 7

            s1 p2 200 7

            s4 p1 200 7

            s1 p6 100 11

            s1 p5 100 11

            83

            Rangs Denses(Dense Ranking)

            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

            s p qtyD-rank

            s1 p3 400 1

            s3 p2 400 1

            s4 p5 400 1

            s1 p1 300 2

            s2 p2 300 2

            s4 p4 300 2

            s1 p4 200 3

            s1 p2 200 3

            s4 p2 200 3

            s4 p1 200 3

            s1 p6 100 4

            s1 p5 100 4

            84

            Rangs DensesGraphique MsAccess

            s p qty D-rank

            s1 p3 400 1

            s3 p2 400 1

            s4 p5 400 1

            s1 p1 300 2

            s2 p2 300 2

            s4 p4 300 2

            s1 p4 200 3

            s1 p2 200 3

            s4 p2 200 3

            s4 p1 200 3

            s1 p6 100 4

            s1 p5 100 4

            85

            Distribution

            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

            86

            Reacutesultat

            s Distribution

            s1 0419

            s2 0097

            s3 0129

            s4 0355

            87

            Distribution Cumulative

            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

            FROM SP

            ORDER BY SP[s]

            88

            Reacutesultat

            sDistribution Cumuleacutee

            s1 0419

            s2 0516

            s3 0645

            s4 1

            89

            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

            - Un outil - Fonction scalaire IIF de SQL Access

            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

            - On peut alternativement utiliser UNION ou UNION ALL

            90

            CateacutegorisationSELECT S[S] SSName SStatus SCity

            IIf([status]lt30OKgood) AS IIfSimple

            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

            FROM S

            GROUP BY S[S] SSName SStatus SCity

            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

            s1 Smith Paris good good

            s2 Jones 100 london good VGood

            s3 Blake 30 Paris good good

            s4 Clark 10 london OK OK

            s5 Adams 30 Athens good good

            bull Notez le traitement du null

            91

            Cateacutegorisation Emploi alternatif drsquoUNION

            SELECT Ppname weight Very Heavy as Warning

            FROM P where weight gt 13

            union

            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

            UNION

            select Ppname weight Light as warn from p where weight lt 10

            ORDER BY warning DESC weight DESC

            pname weight Warning

            cam 19 Very Heavy

            cog 19 Very Heavy

            bolt 17 Very Heavy

            nut 14 Very Heavy

            screw 14 Very Heavy

            nut 14 Quite Heavy

            screw 14 Quite Heavy

            screw 12 Quite Heavy

            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

            92

            UNIONPreacutedictions de Valeurs Inconnues

            On considegravere AVG(Qty1) pour Qty

            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

            SP

            s p qtyQty1

            s1 p1 300 400

            s1 p2 200

            s1 p3 400 600

            s1 p4 200 300

            s1 p5 100

            s1 p6 100 200

            s2 p2 300 500

            s3 p2 400

            s4 p1 200 100

            s4 p2 200

            s4 p4 300

            s4 p5 400

            93

            UNIONPreacutediction de Valeurs Inconnues

            On peut compleacuteter SP par UPDATE SPReacutesultat

            SP

            s p qtyQty1

            s1 p1 300 400

            s1 p2 200

            s1 p3 400 600

            s1 p4 200 300

            s1 p5 100

            s1 p6 100 200

            s2 p2 300 500

            s3 p2 400

            s4 p1 200 100

            s4 p2 200

            s4 p4 300

            s4 p5 400

            qty for partpredicted or

            unknown Qty1

            100 p5

            100 predicted value 200

            200 p2

            200 predicted value 200

            300 p4

            300 predicted value 450

            400 p2

            400 p5

            400 predicted value 600

            94

            Tendance

            qty Qty1

            100 200

            200 300

            300 400

            400 600

            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

            SP est supposeacute avec la DF entre Qty et Qty1

            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

            Graph 3D avec Qty en abscisses

            95

            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

            30102008 120 27102008 4

            25102008 131 22102008 4

            23102008 127 20102008 4

            17102008 269 14102008 4

            15102008 60 12102008 4

            11102008 295 08102008 4

            09102008 340 06102008 4

            08102008 324 05102008 4

            06102008 315 03102008 4

            96

            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

            Graphique avec une info-bulle

            97

            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

            glissantes

            bull CSUM (Cumulative (Running) Sums)

            bull MAVG

            bull MSUM

            bull MDIFF

            bull Voir Teradata + loin

            98

            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

            On veut voir aussi le gain que T2 offrirait par rapport au T1

            99

            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

            Entiers est une table aux avec la colonne de12hellip10

            100

            Seacuteries financiegraveres

            capital taux nval apregraves n ans

            taux1val1 apregraves n ans

            GainAbs GainRel

            100 005 1 105 006 106 1 1

            100 005 2 110 006 112 2 2

            100 005 3 115 006 119 4 4

            100 005 4 121 006 126 5 5

            100 005 5 127 006 133 6 6

            100 005 6 134 006 141 7 7

            100 005 7 140 006 150 10 10

            100 005 8 147 006 159 12 12

            100 005 9 155 006 168 13 13

            100 005 10 162 006 179 17 17

            100 005 11 171 006 189 18 18

            100 005 12 179 006 201 22 22

            100 005 13 188 006 213 25 25

            100 005 14 197 006 226 29 29

            100 005 15 207 006 239 32 32

            100 005 16 218 006 254 36 36

            100 005 17 229 006 269 40 40

            100 005 18 240 006 285 45 45

            100 005 19 252 006 302 50 50

            100 005 20 265 006 320 55 55

            101

            Seacuteries financiegraveres

            102

            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

            financiers de la table Produits

            bull Dans la limite L de la somme donneacutee

            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

            bull En ordre descendant de prix

            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

            bull Plusieurs actionshellip

            103

            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

            P prix

            p3 200

            p1 200

            p2 400

            p3 200

            p4 100

            p6 100

            p5 300

            p8 300

            p7 400

            p10 200

            p12 300

            p13 300

            104

            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

            ORDER BY 4 desc 8 123

            105

            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

            106

            Creacuteation drsquoun Portefeuille Discussion

            Creacuteation drsquoun Portefeuille Discussion

            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

            107

            Creacuteation drsquoun Portefeuille Discussion

            Creacuteation drsquoun Portefeuille Discussion

            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

            108

            ROLLUP(DB2 amp SQL-Server)

            ROLLUP(DB2 amp SQL-Server)

            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

            109

            CUBE(DB2 amp SQL-Server)

            CUBE(DB2 amp SQL-Server)

            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

            110

            GROUPING SETS

            On indique explicitement les groupesndash entre ()

            le groupe () est constitueacute de toute la table

            SELECT p sum (qty) as tot-qty from SSP P

            WHERE SP P = PP AND SP S = SS

            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

            HAVING tot-qty gt 100

            Problegravemes avec des nuls que lrsquoon verra plus tard

            111

            Rollup Cube Grouping Setssous MsAccess

            Il y en a pas On peut simuler ces manipulations en

            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

            Peut ecirctre laborieux pour le CUBE

            112

            ROLLUP

            Remarquez le laquo null as cityraquo

            113

            ROLLUP

            114

            ROLLUP

            Et le CUBE

            Une solution pour l ambiguiumlteacute

            de certains nuls

            115

            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

            Wiley (publ)

            116

            Sous-Tables Parameacutetreacutees

            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

            117

            Sous-Tables Parameacutetreacutees

            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

            118

            Sous-Tables Parameacutetreacutees

            119

            Sous-Tables Parameacutetreacutees

            120

            Sous-Tables Parameacutetreacutees

            121

            Sous-Tables Parameacutetreacutees

            122

            Sous-Tables Parameacutetreacutees

            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

            123

            Sous-Tables Parameacutetreacutees

            Exeacutecution autonome

            124

            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

            ecirctre choisi que dans une ville drsquoun client de Northwind

            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

            hellip

            125

            Liste de Choix Multibase

            bull Requecircte Test-liste-de-choix mdb

            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

            126

            Liste de Choix MultibaseReacutesultat

            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

            Tregraves bonne question agrave Microsoft

            148

            FIN

            149

            • SQL Avanceacute 2010
            • Quoi amp Pourquoi
            • Slide 3
            • Synonymes
            • Noms dattributs
            • Slide 6
            • Slide 7
            • Slide 8
            • Insertion dans une Vue
            • Insertion dans une Vue (2)
            • MAJ drsquoune Vue MsAccess
            • MAJ drsquoune Vue MsAccess (2)
            • Suppression dans une Vue MsAccess
            • MsAccess Leacutegendes
            • Expressions de valeur
            • Expressions de valeur (2)
            • Pour en savoir + sur les attributs dynamiques
            • UNION et Noms Drsquoattributs
            • UNION et ORDER BY
            • ORDER BY et expressions de valeur
            • ORDER BY et expressions de valeur (2)
            • Ordre de prioriteacute dopeacuterations
            • Preacutedicat TOP
            • Preacutedicat TOP (2)
            • Clause BETWEEN
            • Limitations de NOT
            • ANY et ALL
            • Injection SQL
            • Injection SQL (2)
            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
            • Tabulations Croiseacutees
            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
            • Tabulations Croiseacutees (2)
            • Tabulations Croiseacutees (3)
            • Tabulations Croiseacutees (4)
            • Tabulations Croiseacutees (5)
            • XOR
            • IMP
            • Sous-requecirctes
            • Sous-requecirctes (2)
            • Sous-requecirctes (3)
            • Sous-requecirctes (4)
            • Sous-requecirctes (5)
            • Sous-requecirctes (6)
            • Sous-requecirctes (7)
            • Application aux Probabiliteacutes
            • Clause FROM imbriqueacutee
            • Clause FROM imbriqueacutee (2)
            • Clause FROM imbriqueacutee (3)
            • Clause FROM imbriqueacutee (4)
            • Clause FROM imbriqueacutee (5)
            • Clause FROM imbriqueacutee (6)
            • Valeurs nulles
            • Valeurs nulles (2)
            • Valeurs nulles (3)
            • Valeurs nulles (4)
            • Fonctions Scalaires DateTemps
            • Fonctions Scalaires DateTemps (2)
            • Fonctions Scalaires DateTemps (3)
            • Fonctions Scalaires DateTemps (4)
            • Fonctions Scalaires DateTemps (5)
            • Fonction Scalaire RND
            • Fonction Scalaire RND (2)
            • Fonctions Financiegraveres
            • Fonctions Financiegraveres (2)
            • Fonction DDB
            • Fonction DDB (2)
            • Fonction PMT
            • Fonction PMT (2)
            • Placement agrave taux variable
            • GROUP BY
            • LIST Function
            • LIST Function (2)
            • GROUP BY avec WHERE
            • GROUP BY (2)
            • GROUP BY avec HAVING
            • T-GROUP BY
            • T-GROUP BY (2)
            • T-GROUP BY (3)
            • T-GROUP BY (4)
            • Rangs Non-Denses (Non Dense Ranking)
            • Rangs Non-Denses (Graphique MsAccess)
            • Rangs Denses (Dense Ranking)
            • Rangs Denses Graphique MsAccess
            • Distribution
            • Reacutesultat
            • Distribution Cumulative
            • Reacutesultat (2)
            • Cateacutegorisation
            • Cateacutegorisation (2)
            • Cateacutegorisation (3)
            • UNION Preacutedictions de Valeurs Inconnues
            • UNION Preacutediction de Valeurs Inconnues
            • Tendance
            • Moyenne Glissante
            • Moyenne Glissante (2)
            • Moyenne Glissante (3)
            • Seacuteries financiegraveres
            • Seacuteries financiegraveres (2)
            • Seacuteries financiegraveres (3)
            • Seacuteries financiegraveres (4)
            • Creacuteation drsquoun Portefeuille
            • Creacuteation drsquoun Portefeuille (2)
            • Creacuteation drsquoun Portefeuille (3)
            • Creacuteation drsquoun Portefeuille (4)
            • Creacuteation drsquoun Portefeuille Discussion
            • Creacuteation drsquoun Portefeuille Discussion (2)
            • ROLLUP (DB2 amp SQL-Server)
            • CUBE (DB2 amp SQL-Server)
            • GROUPING SETS
            • Rollup Cube Grouping Sets sous MsAccess
            • Slide 112
            • Slide 113
            • Slide 114
            • Autres Opeacuterations Utiles
            • Sous-Tables Parameacutetreacutees
            • Sous-Tables Parameacutetreacutees (2)
            • Sous-Tables Parameacutetreacutees (3)
            • Sous-Tables Parameacutetreacutees (4)
            • Sous-Tables Parameacutetreacutees (5)
            • Sous-Tables Parameacutetreacutees (6)
            • Sous-Tables Parameacutetreacutees (7)
            • Sous-Tables Parameacutetreacutees (8)
            • Liste de Choix Multibase
            • Liste de Choix Multibase (2)
            • Liste de Choix Multibase Reacutesultat
            • FIN
            • Slide 149

              7

              Lrsquoinsertion en mode QBE (feuille de donneacutees) dans la vue de la cleacute drsquoun tuple t existant dans une table dont la vue deacutepend peut induire lrsquoapparition de tous les autres valeurs dans t

              Le tuple inseacutereacute en mode QBE peut aussi disparaicirctre agrave lrsquoouverture suivante de la vue

              Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

              8

              A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

              CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

              CITY [P] QTY FROM S SP

              Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

              9

              Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

              une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

              SELECT P Ville FROM P C WHERE PCpostal = CCpostal

              Avec

              P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

              Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

              10

              Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

              attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

              Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

              A expeacuterimenter sur MsAccess

              Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

              11

              MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

              ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

              Y compris externendash Lien classe ndash sous-classe

              ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

              A expeacuterimenter sur les vues SP1 et SP2

              12

              MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

              QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

              avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

              valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

              13

              Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

              vuendash Toute vue mono-table ou agrave un tuple de la vue

              correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

              Surprise ndash On insegravere un tuple dans une vue V agrave jointure

              INSERT Vhellip

              ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

              14

              MsAccess LeacutegendesMsAccess Leacutegendes

              La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

              Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

              SP

              s Product ID qty

              s1 p1 300

              s1 p2 200

              s1 p3 400

              s1 p4 200

              s1 p5 100

              s1 p6 100

              s2 p1 300

              hellip hellip hellip

              15

              Expressions de valeur Peuvent ecirctre des attr dynamiques

              imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

              Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

              SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

              Une bonne question pour Microsoft

              16

              Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

              reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

              vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

              les attributs du type texte soit a = 2 et b = 3ndash a+b 23

              Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

              Il faut la clause Parameters a int b int

              17

              Pour en savoir + sur les attributs dynamiques

              Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

              Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

              Voir le site du CERIA

              18

              UNION et Noms Drsquoattributs

              SELECT [s] FROM S

              Union

              SELECT [p] FROM p

              Quel nom drsquoattribut sera dans le reacutesultat

              Sous MSAccess Dans SQL Server MySQL Oraclehellip

              19

              UNION et ORDER BY

              SELECT [s] FROM S

              Union

              SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

              les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

              Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

              apregraves le 2egraveme SELECT

              20

              ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

              ORDER BY clauseORDER BY SAL - COMM

              Exceptions UNION MINUS INTERSECT

              Cette clause peut reacutefeacuterencer lattribut par position

              Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

              Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

              MsAccess

              21

              ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

              une expression qui nest pas dans SELECT clauseSelect S CITY

              FROM SORDER BY SNAME STATUS+50

              exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

              Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

              Essayez

              SELECT distinct sp[s]

              FROM sp

              ORDER BY spqty

              22

              Ordre de prioriteacute dopeacuterations

              1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

              2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

              [e][e]

              23

              Preacutedicat TOP

              SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

              SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

              SQL Server eacutequivalent de TOP drsquoAccess

              SELECT TOP hellip WITH TIES

              >

              24

              Preacutedicat TOP

              Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

              La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

              Pour seacutelectionner les tuples 303132

              LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

              Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

              >

              25

              Clause BETWEEN

              Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

              geacuteneacuteriques ndash contrairement agrave LIKE

              Quel sera le reacutesultat pour Jones et pourquoi

              SELECT FROM S where sname between b and J

              Et si on eacutecrit

              SELECT FROM S where sname between J and b

              ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

              26

              Limitations de NOT

              Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

              (SELECT CITY FROM S)

              Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

              Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

              Hypothegravese de Monde ouvert

              27

              ANY et ALL

              All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

              (SELECT STATUS FROM S WHERE SNAME = BNP)

              si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

              si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

              Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

              (SELECT STATUS FROM S WHERE SNAME = BNP)

              28

              Injection SQL On ajoute en fraude agrave une requecircte a priori en

              restriction une condition qui annule cette restriction

              Gros deacutegacircts sur le WEB notammentSELECT

              FROM S

              WHERE city=london Or True

              SQL Injection

              S SName Status City

              s1 smith Paris

              s2 Jones 100 london

              s3 Blake 30 Paris

              s4 Clark 10 london

              s5 Adams 30 Athens

              29

              Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

              True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

              SELECT

              FROM S

              WHERE status= 100 Or 200

              SELECT

              FROM S

              WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

              SELECT

              FROM S

              WHERE city=london Or 100

              30

              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

              Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

              BY et les valeurs individuelles en mecircme temps

              ndash Impossible avec SQL standard

              31

              S Total Qty p1 p2 p3 p4 p5 p6

              s1 1300 300 200 400 200 100 100

              s2 700 300 400

              s3 200 200

              s4 900 200 300 400

              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

              Tabulations Croiseacutees

              32

              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

              Transforment les valeurs dattributs en attributsndash Par exemple

              les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

              les valeurs de P1 P2 sont les QTY (par ex) correspondants

              33

              S Total Qty p1 p2 p3 p4 p5 p6

              s1 1300 300 200 400 200 100 100

              s2 700 300 400

              s3 200 200

              s4 900 200 300 400

              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

              Tabulations Croiseacutees

              34

              TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

              Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

              Tabulations Croiseacutees

              Nouvellescolonnes

              35

              La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

              On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

              Tabulations Croiseacutees

              36

              On peut utiliser la clause WHEREWHERE P IN (P1 P2)

              Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

              On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

              Mais cette clause naffecte pas les calculs des agreacutegats

              Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

              Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

              Tabulations Croiseacutees

              37

              XORSELECT S[S] SStatus SCity

              FROM S

              WHERE Status=10 Xor city=paris

              bull A noter le traitement du nul dans City

              38

              IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

              bull A noter le traitement du nul dans City

              39

              Sous-requecirctes

              A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

              clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

              rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

              sous-requecircte

              SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

              40

              Sous-requecirctes

              Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

              laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

              vite ou Livrerait au moins aussi vite mais en quantiteacute

              plus grande

              41

              Sous-requecirctes

              Skylinendash Tout objet non-domineacute (cacheacute

              totalement) par un autre

              SELECT X[s] X[p] qty delay

              FROM SP X

              where not exists

              (select from SP as Y

              where (Yqty gt= XQty and YDelay lt XDelay or

              Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

              order by X[p]

              42

              Sous-requecirctes Reacutesultat

              s p qty delay

              s1 p1 300 15

              s4 p1 200 13

              s3 p2 400 15

              s2 p2 300 12

              s1 p3 400 17

              s4 p4 300 11

              s4 p5 400 7

              s1 p6 100 8

              s p qty Delay

              s1 p1 300 15

              s1 p2 200 12

              s1 p3 400 17

              s1 p4 200 11

              s1 p5 100 7

              s1 p6 100 8

              s2 p2 300 12

              s3 p2 400 15

              s4 p1 200 13

              s4 p2 200 15

              s4 p4 300 11

              s4 p5 400 7

              S

              43

              Sous-requecirctes

              On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

              SELECT Count() AS TotalQty

              FROM (select distinct qty from sp)

              On peut aussi avoir une sous-requecircte dans la clause SELECT

              SELECT SP[s] SP[p] qty

              (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

              round(qtyTotalQty 3) AS Fraction

              FROM SP order by [s]

              44

              Sous-requecirctes

              s p qty TotalQty Fraction

              s1 p1 300 1300 0231

              s1 p6 100 1300 0077

              s1 p5 100 1300 0077

              s1 p4 200 1300 0154

              s1 p3 400 1300 0308

              s1 p2 200 1300 0154

              s2 p2 300 300 1

              s3 p2 400 400 1

              s4 p5 400 1100 0364

              s4 p4 300 1100 0273

              s4 p2 200 1100 0182

              bull ReacutesultatSP

              s p qty

              s1 p1 300

              s1 p2 200

              s1 p3 400

              s1 p4 200

              s1 p5 100

              s1 p6 100

              s2 p2 300

              s3 p2 400

              s4 p1 200

              s4 p2 200

              s4 p4 300

              s4 p5 400

              45

              Sous-requecirctesbull En Mode Graphique

              s p qtyTotalQty

              Fraction

              s1 p1 300 1300 0231

              s1 p6 100 1300 0077

              s1 p5 100 1300 0077

              s1 p4 200 1300 0154

              s1 p3 400 1300 0308

              s1 p2 200 1300 0154

              s2 p2 300 300 1

              s3 p2 400 400 1

              s4 p5 400 1100 0364

              s4 p4 300 1100 0273

              s4 p2 200 1100 0182

              46

              Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

              SELECT (select count(qty) from SP

              where qty gt= [seuil svp ]) count() as reacutesultat

              FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

              probabiliteacute conditionnelle

              47

              Clause FROM imbriqueacutee

              Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

              Select attrshellipFROM [tbls] (SQL-Select) Where hellip

              Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

              Agrave essayer

              48

              Clause FROM imbriqueacuteePossibiliteacutes

              ndash Agreacutegations par-dessus UNION ou UNION ALL

              ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

              MsAccess

              ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

              Mais la reacutefeacuterence au nom de la requecircte OK

              49

              Clause FROM imbriqueacutee

              SELECT sum(weight) AS [poids-total]

              FROM (SELECT weight pcity FROM P WHERE City like l

              UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

              50

              Clause FROM imbriqueacutee

              select avg(moy1) as [moyenne-des-moyennes]

              FROM

              (SELECT avg(weight) as moy1 FROM P WHERE City like l

              UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

              51

              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

              select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

              52

              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

              totaux partiels et total geacuteneacuteral

              total_Id TotalQty

              s1 1300

              s2 300

              s3 400

              s4 400

              total Geacuteneacuteral

              2400

              53

              Valeurs nulles

              Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

              En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

              DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

              Non WHERE HAVING GROUP BY (rel 1)

              Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

              MsAccess Oui DISTINCT Autres clauses

              54

              Valeurs nulles Si x est nul et y nrsquoest pas alors

              1 x gt y est vrai ou faux

              2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

              DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

              SELECT FROM S WHERE CITY =Paris

              UNION

              SELECT FROM S WHERE NOT CITY = Paris

              est toujours pourquoi faire simpleSELECT FROM S

              si on peut faire compliqueacute

              55

              Valeurs nullesValeurs nulles

              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

              56

              Valeurs nulles

              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

              LOG (nul) -gt Error A voir cas par cas

              57

              Fonctions Scalaires DateTemps

              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

              58

              Fonctions Scalaires DateTemps

              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

              weekday(day(now())-1) AS [day]FROM S

              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

              59

              Fonctions Scalaires DateTemps

              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

              Interval Explanation

              Yyyy Year

              q Quarter

              m Month

              y Day of year

              d Day

              w Weekday

              ww Week

              h Hour

              n Minute

              s Second

              60

              Fonctions Scalaires DateTemps

              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

              Test DateDiff

              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

              61

              Fonctions Scalaires DateTemps

              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

              Liste tous les tuples ougrave DateV est de Janvier 2009

              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

              62

              Fonction Scalaire RND

              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

              FROM SPORDER BY rnd(qty) DESC

              echantillon s rank

              s1 502628087997437E-02

              s4 0518015921115875

              s3 075702953338623

              63

              Fonction Scalaire RND

              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

              FROM SPORDER BY rnd(qty) DESC

              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

              Votre commentaire ici

              64

              Fonctions Financiegraveres

              Fonction DDB Calcule lamortissement deacutegressif

              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

              65

              Fonctions Financiegraveres

              Fonction DDB Calcule lamortissement deacutegressif

              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

              66

              Fonction DDB

              insert into DDB (cost salvage life factor amortiss period)

              select 100 as cost 70 as salvage 5 as life 1 as factor

              DDB(cost salvage life period factor) as amortiss period

              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

              67

              Fonction DDB

              INSERT INTO DDB ( cost salvage life factor amortiss period )

              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

              DDB(costsalvagelifeperiodfactor) AS amortiss period

              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

              68

              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

              nombres neacutegatifs

              Fonction PMT

              69

              Fonction PMT

              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

              Fonction PMT calcul dannuiteacute demprunt

              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

              preacutesentevaleur_payeacutee surprime

              -16049 005 20 200000 -320980 -120980

              70

              Placement agrave taux variable Somme et Fin sont les paramegravetres

              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

              Et les nuls que log ne supporte pas

              Anneacutee relative

              Taux

              1 4

              2 4

              3 3

              4 5

              5 5

              Voir + dans le livre laquo SQL Design Patterns raquo

              71

              GROUP BY Est une clause redondante avec le SELECT agrave sous-

              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

              est eacutequivalente agrave

              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

              WHERE XP = SPP) FROM SP

              Testez

              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

              72

              LIST Function La requecircte

              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

              Comme les tabulations croiseacutees

              ndash Mais en + simple

              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

              ndash En mono attribut (2004)

              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

              sous-formulaires

              73

              LIST Function

              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

              74

              GROUP BY avec WHERE

              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

              75

              GROUP BY

              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

              Pourquoi

              76

              GROUP BY avec HAVING

              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

              77

              T-GROUP BY Proposeacute pour SQL

              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

              Le rocircle de -join par rapport agrave equi-join

              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

              INT(AVG(QTY)) AS QTY2FROM SP

              T-GROUP (QT1 BY P QT2 BY ltgt P)

              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

              78

              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

              FROM SP Vrai ou Faux

              79

              T-GROUP BY

              Reacutesultat

              part avg_qty_other_parts part_avg_qty

              p1 250 300

              p2 262 250

              p3 245 400

              p4 260 250

              p5 260 250

              p6 272 100

              80

              T-GROUP BY

              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

              81

              Rangs Non-Denses(Non Dense Ranking)

              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

              s p qtyND-rank

              s4 p5 400 1

              s3 p2 400 1

              s1 p3 400 1

              s4 p4 300 4

              s2 p2 300 4

              s1 p1 300 4

              s4 p2 200 7

              s1 p4 200 7

              s1 p2 200 7

              s4 p1 200 7

              s1 p6 100 11

              s1 p5 100 11

              82

              Rangs Non-Denses(Graphique MsAccess)

              s p qty ND-rank

              s4 p5 400 1

              s3 p2 400 1

              s1 p3 400 1

              s4 p4 300 4

              s2 p2 300 4

              s1 p1 300 4

              s4 p2 200 7

              s1 p4 200 7

              s1 p2 200 7

              s4 p1 200 7

              s1 p6 100 11

              s1 p5 100 11

              83

              Rangs Denses(Dense Ranking)

              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

              s p qtyD-rank

              s1 p3 400 1

              s3 p2 400 1

              s4 p5 400 1

              s1 p1 300 2

              s2 p2 300 2

              s4 p4 300 2

              s1 p4 200 3

              s1 p2 200 3

              s4 p2 200 3

              s4 p1 200 3

              s1 p6 100 4

              s1 p5 100 4

              84

              Rangs DensesGraphique MsAccess

              s p qty D-rank

              s1 p3 400 1

              s3 p2 400 1

              s4 p5 400 1

              s1 p1 300 2

              s2 p2 300 2

              s4 p4 300 2

              s1 p4 200 3

              s1 p2 200 3

              s4 p2 200 3

              s4 p1 200 3

              s1 p6 100 4

              s1 p5 100 4

              85

              Distribution

              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

              86

              Reacutesultat

              s Distribution

              s1 0419

              s2 0097

              s3 0129

              s4 0355

              87

              Distribution Cumulative

              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

              FROM SP

              ORDER BY SP[s]

              88

              Reacutesultat

              sDistribution Cumuleacutee

              s1 0419

              s2 0516

              s3 0645

              s4 1

              89

              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

              - Un outil - Fonction scalaire IIF de SQL Access

              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

              - On peut alternativement utiliser UNION ou UNION ALL

              90

              CateacutegorisationSELECT S[S] SSName SStatus SCity

              IIf([status]lt30OKgood) AS IIfSimple

              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

              FROM S

              GROUP BY S[S] SSName SStatus SCity

              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

              s1 Smith Paris good good

              s2 Jones 100 london good VGood

              s3 Blake 30 Paris good good

              s4 Clark 10 london OK OK

              s5 Adams 30 Athens good good

              bull Notez le traitement du null

              91

              Cateacutegorisation Emploi alternatif drsquoUNION

              SELECT Ppname weight Very Heavy as Warning

              FROM P where weight gt 13

              union

              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

              UNION

              select Ppname weight Light as warn from p where weight lt 10

              ORDER BY warning DESC weight DESC

              pname weight Warning

              cam 19 Very Heavy

              cog 19 Very Heavy

              bolt 17 Very Heavy

              nut 14 Very Heavy

              screw 14 Very Heavy

              nut 14 Quite Heavy

              screw 14 Quite Heavy

              screw 12 Quite Heavy

              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

              92

              UNIONPreacutedictions de Valeurs Inconnues

              On considegravere AVG(Qty1) pour Qty

              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

              SP

              s p qtyQty1

              s1 p1 300 400

              s1 p2 200

              s1 p3 400 600

              s1 p4 200 300

              s1 p5 100

              s1 p6 100 200

              s2 p2 300 500

              s3 p2 400

              s4 p1 200 100

              s4 p2 200

              s4 p4 300

              s4 p5 400

              93

              UNIONPreacutediction de Valeurs Inconnues

              On peut compleacuteter SP par UPDATE SPReacutesultat

              SP

              s p qtyQty1

              s1 p1 300 400

              s1 p2 200

              s1 p3 400 600

              s1 p4 200 300

              s1 p5 100

              s1 p6 100 200

              s2 p2 300 500

              s3 p2 400

              s4 p1 200 100

              s4 p2 200

              s4 p4 300

              s4 p5 400

              qty for partpredicted or

              unknown Qty1

              100 p5

              100 predicted value 200

              200 p2

              200 predicted value 200

              300 p4

              300 predicted value 450

              400 p2

              400 p5

              400 predicted value 600

              94

              Tendance

              qty Qty1

              100 200

              200 300

              300 400

              400 600

              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

              SP est supposeacute avec la DF entre Qty et Qty1

              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

              Graph 3D avec Qty en abscisses

              95

              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

              30102008 120 27102008 4

              25102008 131 22102008 4

              23102008 127 20102008 4

              17102008 269 14102008 4

              15102008 60 12102008 4

              11102008 295 08102008 4

              09102008 340 06102008 4

              08102008 324 05102008 4

              06102008 315 03102008 4

              96

              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

              Graphique avec une info-bulle

              97

              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

              glissantes

              bull CSUM (Cumulative (Running) Sums)

              bull MAVG

              bull MSUM

              bull MDIFF

              bull Voir Teradata + loin

              98

              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

              On veut voir aussi le gain que T2 offrirait par rapport au T1

              99

              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

              Entiers est une table aux avec la colonne de12hellip10

              100

              Seacuteries financiegraveres

              capital taux nval apregraves n ans

              taux1val1 apregraves n ans

              GainAbs GainRel

              100 005 1 105 006 106 1 1

              100 005 2 110 006 112 2 2

              100 005 3 115 006 119 4 4

              100 005 4 121 006 126 5 5

              100 005 5 127 006 133 6 6

              100 005 6 134 006 141 7 7

              100 005 7 140 006 150 10 10

              100 005 8 147 006 159 12 12

              100 005 9 155 006 168 13 13

              100 005 10 162 006 179 17 17

              100 005 11 171 006 189 18 18

              100 005 12 179 006 201 22 22

              100 005 13 188 006 213 25 25

              100 005 14 197 006 226 29 29

              100 005 15 207 006 239 32 32

              100 005 16 218 006 254 36 36

              100 005 17 229 006 269 40 40

              100 005 18 240 006 285 45 45

              100 005 19 252 006 302 50 50

              100 005 20 265 006 320 55 55

              101

              Seacuteries financiegraveres

              102

              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

              financiers de la table Produits

              bull Dans la limite L de la somme donneacutee

              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

              bull En ordre descendant de prix

              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

              bull Plusieurs actionshellip

              103

              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

              P prix

              p3 200

              p1 200

              p2 400

              p3 200

              p4 100

              p6 100

              p5 300

              p8 300

              p7 400

              p10 200

              p12 300

              p13 300

              104

              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

              ORDER BY 4 desc 8 123

              105

              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

              106

              Creacuteation drsquoun Portefeuille Discussion

              Creacuteation drsquoun Portefeuille Discussion

              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

              107

              Creacuteation drsquoun Portefeuille Discussion

              Creacuteation drsquoun Portefeuille Discussion

              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

              108

              ROLLUP(DB2 amp SQL-Server)

              ROLLUP(DB2 amp SQL-Server)

              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

              109

              CUBE(DB2 amp SQL-Server)

              CUBE(DB2 amp SQL-Server)

              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

              110

              GROUPING SETS

              On indique explicitement les groupesndash entre ()

              le groupe () est constitueacute de toute la table

              SELECT p sum (qty) as tot-qty from SSP P

              WHERE SP P = PP AND SP S = SS

              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

              HAVING tot-qty gt 100

              Problegravemes avec des nuls que lrsquoon verra plus tard

              111

              Rollup Cube Grouping Setssous MsAccess

              Il y en a pas On peut simuler ces manipulations en

              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

              Peut ecirctre laborieux pour le CUBE

              112

              ROLLUP

              Remarquez le laquo null as cityraquo

              113

              ROLLUP

              114

              ROLLUP

              Et le CUBE

              Une solution pour l ambiguiumlteacute

              de certains nuls

              115

              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

              Wiley (publ)

              116

              Sous-Tables Parameacutetreacutees

              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

              117

              Sous-Tables Parameacutetreacutees

              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

              118

              Sous-Tables Parameacutetreacutees

              119

              Sous-Tables Parameacutetreacutees

              120

              Sous-Tables Parameacutetreacutees

              121

              Sous-Tables Parameacutetreacutees

              122

              Sous-Tables Parameacutetreacutees

              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

              123

              Sous-Tables Parameacutetreacutees

              Exeacutecution autonome

              124

              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

              ecirctre choisi que dans une ville drsquoun client de Northwind

              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

              hellip

              125

              Liste de Choix Multibase

              bull Requecircte Test-liste-de-choix mdb

              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

              126

              Liste de Choix MultibaseReacutesultat

              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

              Tregraves bonne question agrave Microsoft

              148

              FIN

              149

              • SQL Avanceacute 2010
              • Quoi amp Pourquoi
              • Slide 3
              • Synonymes
              • Noms dattributs
              • Slide 6
              • Slide 7
              • Slide 8
              • Insertion dans une Vue
              • Insertion dans une Vue (2)
              • MAJ drsquoune Vue MsAccess
              • MAJ drsquoune Vue MsAccess (2)
              • Suppression dans une Vue MsAccess
              • MsAccess Leacutegendes
              • Expressions de valeur
              • Expressions de valeur (2)
              • Pour en savoir + sur les attributs dynamiques
              • UNION et Noms Drsquoattributs
              • UNION et ORDER BY
              • ORDER BY et expressions de valeur
              • ORDER BY et expressions de valeur (2)
              • Ordre de prioriteacute dopeacuterations
              • Preacutedicat TOP
              • Preacutedicat TOP (2)
              • Clause BETWEEN
              • Limitations de NOT
              • ANY et ALL
              • Injection SQL
              • Injection SQL (2)
              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
              • Tabulations Croiseacutees
              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
              • Tabulations Croiseacutees (2)
              • Tabulations Croiseacutees (3)
              • Tabulations Croiseacutees (4)
              • Tabulations Croiseacutees (5)
              • XOR
              • IMP
              • Sous-requecirctes
              • Sous-requecirctes (2)
              • Sous-requecirctes (3)
              • Sous-requecirctes (4)
              • Sous-requecirctes (5)
              • Sous-requecirctes (6)
              • Sous-requecirctes (7)
              • Application aux Probabiliteacutes
              • Clause FROM imbriqueacutee
              • Clause FROM imbriqueacutee (2)
              • Clause FROM imbriqueacutee (3)
              • Clause FROM imbriqueacutee (4)
              • Clause FROM imbriqueacutee (5)
              • Clause FROM imbriqueacutee (6)
              • Valeurs nulles
              • Valeurs nulles (2)
              • Valeurs nulles (3)
              • Valeurs nulles (4)
              • Fonctions Scalaires DateTemps
              • Fonctions Scalaires DateTemps (2)
              • Fonctions Scalaires DateTemps (3)
              • Fonctions Scalaires DateTemps (4)
              • Fonctions Scalaires DateTemps (5)
              • Fonction Scalaire RND
              • Fonction Scalaire RND (2)
              • Fonctions Financiegraveres
              • Fonctions Financiegraveres (2)
              • Fonction DDB
              • Fonction DDB (2)
              • Fonction PMT
              • Fonction PMT (2)
              • Placement agrave taux variable
              • GROUP BY
              • LIST Function
              • LIST Function (2)
              • GROUP BY avec WHERE
              • GROUP BY (2)
              • GROUP BY avec HAVING
              • T-GROUP BY
              • T-GROUP BY (2)
              • T-GROUP BY (3)
              • T-GROUP BY (4)
              • Rangs Non-Denses (Non Dense Ranking)
              • Rangs Non-Denses (Graphique MsAccess)
              • Rangs Denses (Dense Ranking)
              • Rangs Denses Graphique MsAccess
              • Distribution
              • Reacutesultat
              • Distribution Cumulative
              • Reacutesultat (2)
              • Cateacutegorisation
              • Cateacutegorisation (2)
              • Cateacutegorisation (3)
              • UNION Preacutedictions de Valeurs Inconnues
              • UNION Preacutediction de Valeurs Inconnues
              • Tendance
              • Moyenne Glissante
              • Moyenne Glissante (2)
              • Moyenne Glissante (3)
              • Seacuteries financiegraveres
              • Seacuteries financiegraveres (2)
              • Seacuteries financiegraveres (3)
              • Seacuteries financiegraveres (4)
              • Creacuteation drsquoun Portefeuille
              • Creacuteation drsquoun Portefeuille (2)
              • Creacuteation drsquoun Portefeuille (3)
              • Creacuteation drsquoun Portefeuille (4)
              • Creacuteation drsquoun Portefeuille Discussion
              • Creacuteation drsquoun Portefeuille Discussion (2)
              • ROLLUP (DB2 amp SQL-Server)
              • CUBE (DB2 amp SQL-Server)
              • GROUPING SETS
              • Rollup Cube Grouping Sets sous MsAccess
              • Slide 112
              • Slide 113
              • Slide 114
              • Autres Opeacuterations Utiles
              • Sous-Tables Parameacutetreacutees
              • Sous-Tables Parameacutetreacutees (2)
              • Sous-Tables Parameacutetreacutees (3)
              • Sous-Tables Parameacutetreacutees (4)
              • Sous-Tables Parameacutetreacutees (5)
              • Sous-Tables Parameacutetreacutees (6)
              • Sous-Tables Parameacutetreacutees (7)
              • Sous-Tables Parameacutetreacutees (8)
              • Liste de Choix Multibase
              • Liste de Choix Multibase (2)
              • Liste de Choix Multibase Reacutesultat
              • FIN
              • Slide 149

                8

                A expeacuterimenter sur la base S-P ndash Vue SP1 Select S[S] SNAME STATUS

                CITY [P] QTY FROM S SP ndash Vue SP2 Select SP[S] SNAME STATUS

                CITY [P] QTY FROM S SP

                Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

                9

                Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

                une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

                SELECT P Ville FROM P C WHERE PCpostal = CCpostal

                Avec

                P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

                Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

                10

                Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

                attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

                Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

                A expeacuterimenter sur MsAccess

                Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

                11

                MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

                ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

                Y compris externendash Lien classe ndash sous-classe

                ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

                A expeacuterimenter sur les vues SP1 et SP2

                12

                MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

                QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

                avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

                valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

                13

                Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

                vuendash Toute vue mono-table ou agrave un tuple de la vue

                correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

                Surprise ndash On insegravere un tuple dans une vue V agrave jointure

                INSERT Vhellip

                ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

                14

                MsAccess LeacutegendesMsAccess Leacutegendes

                La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                SP

                s Product ID qty

                s1 p1 300

                s1 p2 200

                s1 p3 400

                s1 p4 200

                s1 p5 100

                s1 p6 100

                s2 p1 300

                hellip hellip hellip

                15

                Expressions de valeur Peuvent ecirctre des attr dynamiques

                imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                Une bonne question pour Microsoft

                16

                Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                Il faut la clause Parameters a int b int

                17

                Pour en savoir + sur les attributs dynamiques

                Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                Voir le site du CERIA

                18

                UNION et Noms Drsquoattributs

                SELECT [s] FROM S

                Union

                SELECT [p] FROM p

                Quel nom drsquoattribut sera dans le reacutesultat

                Sous MSAccess Dans SQL Server MySQL Oraclehellip

                19

                UNION et ORDER BY

                SELECT [s] FROM S

                Union

                SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                apregraves le 2egraveme SELECT

                20

                ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                ORDER BY clauseORDER BY SAL - COMM

                Exceptions UNION MINUS INTERSECT

                Cette clause peut reacutefeacuterencer lattribut par position

                Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                MsAccess

                21

                ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                une expression qui nest pas dans SELECT clauseSelect S CITY

                FROM SORDER BY SNAME STATUS+50

                exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                Essayez

                SELECT distinct sp[s]

                FROM sp

                ORDER BY spqty

                22

                Ordre de prioriteacute dopeacuterations

                1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                [e][e]

                23

                Preacutedicat TOP

                SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                SQL Server eacutequivalent de TOP drsquoAccess

                SELECT TOP hellip WITH TIES

                >

                24

                Preacutedicat TOP

                Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                Pour seacutelectionner les tuples 303132

                LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                >

                25

                Clause BETWEEN

                Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                geacuteneacuteriques ndash contrairement agrave LIKE

                Quel sera le reacutesultat pour Jones et pourquoi

                SELECT FROM S where sname between b and J

                Et si on eacutecrit

                SELECT FROM S where sname between J and b

                ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                26

                Limitations de NOT

                Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                (SELECT CITY FROM S)

                Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                Hypothegravese de Monde ouvert

                27

                ANY et ALL

                All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                (SELECT STATUS FROM S WHERE SNAME = BNP)

                si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                (SELECT STATUS FROM S WHERE SNAME = BNP)

                28

                Injection SQL On ajoute en fraude agrave une requecircte a priori en

                restriction une condition qui annule cette restriction

                Gros deacutegacircts sur le WEB notammentSELECT

                FROM S

                WHERE city=london Or True

                SQL Injection

                S SName Status City

                s1 smith Paris

                s2 Jones 100 london

                s3 Blake 30 Paris

                s4 Clark 10 london

                s5 Adams 30 Athens

                29

                Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                SELECT

                FROM S

                WHERE status= 100 Or 200

                SELECT

                FROM S

                WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                SELECT

                FROM S

                WHERE city=london Or 100

                30

                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                BY et les valeurs individuelles en mecircme temps

                ndash Impossible avec SQL standard

                31

                S Total Qty p1 p2 p3 p4 p5 p6

                s1 1300 300 200 400 200 100 100

                s2 700 300 400

                s3 200 200

                s4 900 200 300 400

                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                Tabulations Croiseacutees

                32

                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                Transforment les valeurs dattributs en attributsndash Par exemple

                les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                les valeurs de P1 P2 sont les QTY (par ex) correspondants

                33

                S Total Qty p1 p2 p3 p4 p5 p6

                s1 1300 300 200 400 200 100 100

                s2 700 300 400

                s3 200 200

                s4 900 200 300 400

                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                Tabulations Croiseacutees

                34

                TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                Tabulations Croiseacutees

                Nouvellescolonnes

                35

                La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                Tabulations Croiseacutees

                36

                On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                Mais cette clause naffecte pas les calculs des agreacutegats

                Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                Tabulations Croiseacutees

                37

                XORSELECT S[S] SStatus SCity

                FROM S

                WHERE Status=10 Xor city=paris

                bull A noter le traitement du nul dans City

                38

                IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                bull A noter le traitement du nul dans City

                39

                Sous-requecirctes

                A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                sous-requecircte

                SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                40

                Sous-requecirctes

                Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                vite ou Livrerait au moins aussi vite mais en quantiteacute

                plus grande

                41

                Sous-requecirctes

                Skylinendash Tout objet non-domineacute (cacheacute

                totalement) par un autre

                SELECT X[s] X[p] qty delay

                FROM SP X

                where not exists

                (select from SP as Y

                where (Yqty gt= XQty and YDelay lt XDelay or

                Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                order by X[p]

                42

                Sous-requecirctes Reacutesultat

                s p qty delay

                s1 p1 300 15

                s4 p1 200 13

                s3 p2 400 15

                s2 p2 300 12

                s1 p3 400 17

                s4 p4 300 11

                s4 p5 400 7

                s1 p6 100 8

                s p qty Delay

                s1 p1 300 15

                s1 p2 200 12

                s1 p3 400 17

                s1 p4 200 11

                s1 p5 100 7

                s1 p6 100 8

                s2 p2 300 12

                s3 p2 400 15

                s4 p1 200 13

                s4 p2 200 15

                s4 p4 300 11

                s4 p5 400 7

                S

                43

                Sous-requecirctes

                On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                SELECT Count() AS TotalQty

                FROM (select distinct qty from sp)

                On peut aussi avoir une sous-requecircte dans la clause SELECT

                SELECT SP[s] SP[p] qty

                (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                round(qtyTotalQty 3) AS Fraction

                FROM SP order by [s]

                44

                Sous-requecirctes

                s p qty TotalQty Fraction

                s1 p1 300 1300 0231

                s1 p6 100 1300 0077

                s1 p5 100 1300 0077

                s1 p4 200 1300 0154

                s1 p3 400 1300 0308

                s1 p2 200 1300 0154

                s2 p2 300 300 1

                s3 p2 400 400 1

                s4 p5 400 1100 0364

                s4 p4 300 1100 0273

                s4 p2 200 1100 0182

                bull ReacutesultatSP

                s p qty

                s1 p1 300

                s1 p2 200

                s1 p3 400

                s1 p4 200

                s1 p5 100

                s1 p6 100

                s2 p2 300

                s3 p2 400

                s4 p1 200

                s4 p2 200

                s4 p4 300

                s4 p5 400

                45

                Sous-requecirctesbull En Mode Graphique

                s p qtyTotalQty

                Fraction

                s1 p1 300 1300 0231

                s1 p6 100 1300 0077

                s1 p5 100 1300 0077

                s1 p4 200 1300 0154

                s1 p3 400 1300 0308

                s1 p2 200 1300 0154

                s2 p2 300 300 1

                s3 p2 400 400 1

                s4 p5 400 1100 0364

                s4 p4 300 1100 0273

                s4 p2 200 1100 0182

                46

                Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                SELECT (select count(qty) from SP

                where qty gt= [seuil svp ]) count() as reacutesultat

                FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                probabiliteacute conditionnelle

                47

                Clause FROM imbriqueacutee

                Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                Agrave essayer

                48

                Clause FROM imbriqueacuteePossibiliteacutes

                ndash Agreacutegations par-dessus UNION ou UNION ALL

                ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                MsAccess

                ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                Mais la reacutefeacuterence au nom de la requecircte OK

                49

                Clause FROM imbriqueacutee

                SELECT sum(weight) AS [poids-total]

                FROM (SELECT weight pcity FROM P WHERE City like l

                UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                50

                Clause FROM imbriqueacutee

                select avg(moy1) as [moyenne-des-moyennes]

                FROM

                (SELECT avg(weight) as moy1 FROM P WHERE City like l

                UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                51

                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                52

                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                totaux partiels et total geacuteneacuteral

                total_Id TotalQty

                s1 1300

                s2 300

                s3 400

                s4 400

                total Geacuteneacuteral

                2400

                53

                Valeurs nulles

                Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                Non WHERE HAVING GROUP BY (rel 1)

                Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                MsAccess Oui DISTINCT Autres clauses

                54

                Valeurs nulles Si x est nul et y nrsquoest pas alors

                1 x gt y est vrai ou faux

                2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                SELECT FROM S WHERE CITY =Paris

                UNION

                SELECT FROM S WHERE NOT CITY = Paris

                est toujours pourquoi faire simpleSELECT FROM S

                si on peut faire compliqueacute

                55

                Valeurs nullesValeurs nulles

                SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                56

                Valeurs nulles

                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                LOG (nul) -gt Error A voir cas par cas

                57

                Fonctions Scalaires DateTemps

                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                58

                Fonctions Scalaires DateTemps

                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                weekday(day(now())-1) AS [day]FROM S

                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                59

                Fonctions Scalaires DateTemps

                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                Interval Explanation

                Yyyy Year

                q Quarter

                m Month

                y Day of year

                d Day

                w Weekday

                ww Week

                h Hour

                n Minute

                s Second

                60

                Fonctions Scalaires DateTemps

                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                Test DateDiff

                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                61

                Fonctions Scalaires DateTemps

                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                Liste tous les tuples ougrave DateV est de Janvier 2009

                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                62

                Fonction Scalaire RND

                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                FROM SPORDER BY rnd(qty) DESC

                echantillon s rank

                s1 502628087997437E-02

                s4 0518015921115875

                s3 075702953338623

                63

                Fonction Scalaire RND

                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                FROM SPORDER BY rnd(qty) DESC

                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                Votre commentaire ici

                64

                Fonctions Financiegraveres

                Fonction DDB Calcule lamortissement deacutegressif

                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                65

                Fonctions Financiegraveres

                Fonction DDB Calcule lamortissement deacutegressif

                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                66

                Fonction DDB

                insert into DDB (cost salvage life factor amortiss period)

                select 100 as cost 70 as salvage 5 as life 1 as factor

                DDB(cost salvage life period factor) as amortiss period

                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                67

                Fonction DDB

                INSERT INTO DDB ( cost salvage life factor amortiss period )

                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                DDB(costsalvagelifeperiodfactor) AS amortiss period

                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                68

                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                nombres neacutegatifs

                Fonction PMT

                69

                Fonction PMT

                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                Fonction PMT calcul dannuiteacute demprunt

                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                preacutesentevaleur_payeacutee surprime

                -16049 005 20 200000 -320980 -120980

                70

                Placement agrave taux variable Somme et Fin sont les paramegravetres

                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                Et les nuls que log ne supporte pas

                Anneacutee relative

                Taux

                1 4

                2 4

                3 3

                4 5

                5 5

                Voir + dans le livre laquo SQL Design Patterns raquo

                71

                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                est eacutequivalente agrave

                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                WHERE XP = SPP) FROM SP

                Testez

                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                72

                LIST Function La requecircte

                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                Comme les tabulations croiseacutees

                ndash Mais en + simple

                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                ndash En mono attribut (2004)

                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                sous-formulaires

                73

                LIST Function

                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                74

                GROUP BY avec WHERE

                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                75

                GROUP BY

                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                Pourquoi

                76

                GROUP BY avec HAVING

                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                77

                T-GROUP BY Proposeacute pour SQL

                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                Le rocircle de -join par rapport agrave equi-join

                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                INT(AVG(QTY)) AS QTY2FROM SP

                T-GROUP (QT1 BY P QT2 BY ltgt P)

                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                78

                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                FROM SP Vrai ou Faux

                79

                T-GROUP BY

                Reacutesultat

                part avg_qty_other_parts part_avg_qty

                p1 250 300

                p2 262 250

                p3 245 400

                p4 260 250

                p5 260 250

                p6 272 100

                80

                T-GROUP BY

                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                81

                Rangs Non-Denses(Non Dense Ranking)

                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                s p qtyND-rank

                s4 p5 400 1

                s3 p2 400 1

                s1 p3 400 1

                s4 p4 300 4

                s2 p2 300 4

                s1 p1 300 4

                s4 p2 200 7

                s1 p4 200 7

                s1 p2 200 7

                s4 p1 200 7

                s1 p6 100 11

                s1 p5 100 11

                82

                Rangs Non-Denses(Graphique MsAccess)

                s p qty ND-rank

                s4 p5 400 1

                s3 p2 400 1

                s1 p3 400 1

                s4 p4 300 4

                s2 p2 300 4

                s1 p1 300 4

                s4 p2 200 7

                s1 p4 200 7

                s1 p2 200 7

                s4 p1 200 7

                s1 p6 100 11

                s1 p5 100 11

                83

                Rangs Denses(Dense Ranking)

                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                s p qtyD-rank

                s1 p3 400 1

                s3 p2 400 1

                s4 p5 400 1

                s1 p1 300 2

                s2 p2 300 2

                s4 p4 300 2

                s1 p4 200 3

                s1 p2 200 3

                s4 p2 200 3

                s4 p1 200 3

                s1 p6 100 4

                s1 p5 100 4

                84

                Rangs DensesGraphique MsAccess

                s p qty D-rank

                s1 p3 400 1

                s3 p2 400 1

                s4 p5 400 1

                s1 p1 300 2

                s2 p2 300 2

                s4 p4 300 2

                s1 p4 200 3

                s1 p2 200 3

                s4 p2 200 3

                s4 p1 200 3

                s1 p6 100 4

                s1 p5 100 4

                85

                Distribution

                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                86

                Reacutesultat

                s Distribution

                s1 0419

                s2 0097

                s3 0129

                s4 0355

                87

                Distribution Cumulative

                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                FROM SP

                ORDER BY SP[s]

                88

                Reacutesultat

                sDistribution Cumuleacutee

                s1 0419

                s2 0516

                s3 0645

                s4 1

                89

                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                - Un outil - Fonction scalaire IIF de SQL Access

                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                - On peut alternativement utiliser UNION ou UNION ALL

                90

                CateacutegorisationSELECT S[S] SSName SStatus SCity

                IIf([status]lt30OKgood) AS IIfSimple

                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                FROM S

                GROUP BY S[S] SSName SStatus SCity

                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                s1 Smith Paris good good

                s2 Jones 100 london good VGood

                s3 Blake 30 Paris good good

                s4 Clark 10 london OK OK

                s5 Adams 30 Athens good good

                bull Notez le traitement du null

                91

                Cateacutegorisation Emploi alternatif drsquoUNION

                SELECT Ppname weight Very Heavy as Warning

                FROM P where weight gt 13

                union

                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                UNION

                select Ppname weight Light as warn from p where weight lt 10

                ORDER BY warning DESC weight DESC

                pname weight Warning

                cam 19 Very Heavy

                cog 19 Very Heavy

                bolt 17 Very Heavy

                nut 14 Very Heavy

                screw 14 Very Heavy

                nut 14 Quite Heavy

                screw 14 Quite Heavy

                screw 12 Quite Heavy

                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                92

                UNIONPreacutedictions de Valeurs Inconnues

                On considegravere AVG(Qty1) pour Qty

                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                SP

                s p qtyQty1

                s1 p1 300 400

                s1 p2 200

                s1 p3 400 600

                s1 p4 200 300

                s1 p5 100

                s1 p6 100 200

                s2 p2 300 500

                s3 p2 400

                s4 p1 200 100

                s4 p2 200

                s4 p4 300

                s4 p5 400

                93

                UNIONPreacutediction de Valeurs Inconnues

                On peut compleacuteter SP par UPDATE SPReacutesultat

                SP

                s p qtyQty1

                s1 p1 300 400

                s1 p2 200

                s1 p3 400 600

                s1 p4 200 300

                s1 p5 100

                s1 p6 100 200

                s2 p2 300 500

                s3 p2 400

                s4 p1 200 100

                s4 p2 200

                s4 p4 300

                s4 p5 400

                qty for partpredicted or

                unknown Qty1

                100 p5

                100 predicted value 200

                200 p2

                200 predicted value 200

                300 p4

                300 predicted value 450

                400 p2

                400 p5

                400 predicted value 600

                94

                Tendance

                qty Qty1

                100 200

                200 300

                300 400

                400 600

                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                SP est supposeacute avec la DF entre Qty et Qty1

                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                Graph 3D avec Qty en abscisses

                95

                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                30102008 120 27102008 4

                25102008 131 22102008 4

                23102008 127 20102008 4

                17102008 269 14102008 4

                15102008 60 12102008 4

                11102008 295 08102008 4

                09102008 340 06102008 4

                08102008 324 05102008 4

                06102008 315 03102008 4

                96

                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                Graphique avec une info-bulle

                97

                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                glissantes

                bull CSUM (Cumulative (Running) Sums)

                bull MAVG

                bull MSUM

                bull MDIFF

                bull Voir Teradata + loin

                98

                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                On veut voir aussi le gain que T2 offrirait par rapport au T1

                99

                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                Entiers est une table aux avec la colonne de12hellip10

                100

                Seacuteries financiegraveres

                capital taux nval apregraves n ans

                taux1val1 apregraves n ans

                GainAbs GainRel

                100 005 1 105 006 106 1 1

                100 005 2 110 006 112 2 2

                100 005 3 115 006 119 4 4

                100 005 4 121 006 126 5 5

                100 005 5 127 006 133 6 6

                100 005 6 134 006 141 7 7

                100 005 7 140 006 150 10 10

                100 005 8 147 006 159 12 12

                100 005 9 155 006 168 13 13

                100 005 10 162 006 179 17 17

                100 005 11 171 006 189 18 18

                100 005 12 179 006 201 22 22

                100 005 13 188 006 213 25 25

                100 005 14 197 006 226 29 29

                100 005 15 207 006 239 32 32

                100 005 16 218 006 254 36 36

                100 005 17 229 006 269 40 40

                100 005 18 240 006 285 45 45

                100 005 19 252 006 302 50 50

                100 005 20 265 006 320 55 55

                101

                Seacuteries financiegraveres

                102

                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                financiers de la table Produits

                bull Dans la limite L de la somme donneacutee

                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                bull En ordre descendant de prix

                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                bull Plusieurs actionshellip

                103

                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                P prix

                p3 200

                p1 200

                p2 400

                p3 200

                p4 100

                p6 100

                p5 300

                p8 300

                p7 400

                p10 200

                p12 300

                p13 300

                104

                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                ORDER BY 4 desc 8 123

                105

                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                106

                Creacuteation drsquoun Portefeuille Discussion

                Creacuteation drsquoun Portefeuille Discussion

                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                107

                Creacuteation drsquoun Portefeuille Discussion

                Creacuteation drsquoun Portefeuille Discussion

                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                108

                ROLLUP(DB2 amp SQL-Server)

                ROLLUP(DB2 amp SQL-Server)

                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                109

                CUBE(DB2 amp SQL-Server)

                CUBE(DB2 amp SQL-Server)

                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                110

                GROUPING SETS

                On indique explicitement les groupesndash entre ()

                le groupe () est constitueacute de toute la table

                SELECT p sum (qty) as tot-qty from SSP P

                WHERE SP P = PP AND SP S = SS

                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                HAVING tot-qty gt 100

                Problegravemes avec des nuls que lrsquoon verra plus tard

                111

                Rollup Cube Grouping Setssous MsAccess

                Il y en a pas On peut simuler ces manipulations en

                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                Peut ecirctre laborieux pour le CUBE

                112

                ROLLUP

                Remarquez le laquo null as cityraquo

                113

                ROLLUP

                114

                ROLLUP

                Et le CUBE

                Une solution pour l ambiguiumlteacute

                de certains nuls

                115

                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                Wiley (publ)

                116

                Sous-Tables Parameacutetreacutees

                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                117

                Sous-Tables Parameacutetreacutees

                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                118

                Sous-Tables Parameacutetreacutees

                119

                Sous-Tables Parameacutetreacutees

                120

                Sous-Tables Parameacutetreacutees

                121

                Sous-Tables Parameacutetreacutees

                122

                Sous-Tables Parameacutetreacutees

                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                123

                Sous-Tables Parameacutetreacutees

                Exeacutecution autonome

                124

                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                ecirctre choisi que dans une ville drsquoun client de Northwind

                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                hellip

                125

                Liste de Choix Multibase

                bull Requecircte Test-liste-de-choix mdb

                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                126

                Liste de Choix MultibaseReacutesultat

                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                Tregraves bonne question agrave Microsoft

                148

                FIN

                149

                • SQL Avanceacute 2010
                • Quoi amp Pourquoi
                • Slide 3
                • Synonymes
                • Noms dattributs
                • Slide 6
                • Slide 7
                • Slide 8
                • Insertion dans une Vue
                • Insertion dans une Vue (2)
                • MAJ drsquoune Vue MsAccess
                • MAJ drsquoune Vue MsAccess (2)
                • Suppression dans une Vue MsAccess
                • MsAccess Leacutegendes
                • Expressions de valeur
                • Expressions de valeur (2)
                • Pour en savoir + sur les attributs dynamiques
                • UNION et Noms Drsquoattributs
                • UNION et ORDER BY
                • ORDER BY et expressions de valeur
                • ORDER BY et expressions de valeur (2)
                • Ordre de prioriteacute dopeacuterations
                • Preacutedicat TOP
                • Preacutedicat TOP (2)
                • Clause BETWEEN
                • Limitations de NOT
                • ANY et ALL
                • Injection SQL
                • Injection SQL (2)
                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                • Tabulations Croiseacutees
                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                • Tabulations Croiseacutees (2)
                • Tabulations Croiseacutees (3)
                • Tabulations Croiseacutees (4)
                • Tabulations Croiseacutees (5)
                • XOR
                • IMP
                • Sous-requecirctes
                • Sous-requecirctes (2)
                • Sous-requecirctes (3)
                • Sous-requecirctes (4)
                • Sous-requecirctes (5)
                • Sous-requecirctes (6)
                • Sous-requecirctes (7)
                • Application aux Probabiliteacutes
                • Clause FROM imbriqueacutee
                • Clause FROM imbriqueacutee (2)
                • Clause FROM imbriqueacutee (3)
                • Clause FROM imbriqueacutee (4)
                • Clause FROM imbriqueacutee (5)
                • Clause FROM imbriqueacutee (6)
                • Valeurs nulles
                • Valeurs nulles (2)
                • Valeurs nulles (3)
                • Valeurs nulles (4)
                • Fonctions Scalaires DateTemps
                • Fonctions Scalaires DateTemps (2)
                • Fonctions Scalaires DateTemps (3)
                • Fonctions Scalaires DateTemps (4)
                • Fonctions Scalaires DateTemps (5)
                • Fonction Scalaire RND
                • Fonction Scalaire RND (2)
                • Fonctions Financiegraveres
                • Fonctions Financiegraveres (2)
                • Fonction DDB
                • Fonction DDB (2)
                • Fonction PMT
                • Fonction PMT (2)
                • Placement agrave taux variable
                • GROUP BY
                • LIST Function
                • LIST Function (2)
                • GROUP BY avec WHERE
                • GROUP BY (2)
                • GROUP BY avec HAVING
                • T-GROUP BY
                • T-GROUP BY (2)
                • T-GROUP BY (3)
                • T-GROUP BY (4)
                • Rangs Non-Denses (Non Dense Ranking)
                • Rangs Non-Denses (Graphique MsAccess)
                • Rangs Denses (Dense Ranking)
                • Rangs Denses Graphique MsAccess
                • Distribution
                • Reacutesultat
                • Distribution Cumulative
                • Reacutesultat (2)
                • Cateacutegorisation
                • Cateacutegorisation (2)
                • Cateacutegorisation (3)
                • UNION Preacutedictions de Valeurs Inconnues
                • UNION Preacutediction de Valeurs Inconnues
                • Tendance
                • Moyenne Glissante
                • Moyenne Glissante (2)
                • Moyenne Glissante (3)
                • Seacuteries financiegraveres
                • Seacuteries financiegraveres (2)
                • Seacuteries financiegraveres (3)
                • Seacuteries financiegraveres (4)
                • Creacuteation drsquoun Portefeuille
                • Creacuteation drsquoun Portefeuille (2)
                • Creacuteation drsquoun Portefeuille (3)
                • Creacuteation drsquoun Portefeuille (4)
                • Creacuteation drsquoun Portefeuille Discussion
                • Creacuteation drsquoun Portefeuille Discussion (2)
                • ROLLUP (DB2 amp SQL-Server)
                • CUBE (DB2 amp SQL-Server)
                • GROUPING SETS
                • Rollup Cube Grouping Sets sous MsAccess
                • Slide 112
                • Slide 113
                • Slide 114
                • Autres Opeacuterations Utiles
                • Sous-Tables Parameacutetreacutees
                • Sous-Tables Parameacutetreacutees (2)
                • Sous-Tables Parameacutetreacutees (3)
                • Sous-Tables Parameacutetreacutees (4)
                • Sous-Tables Parameacutetreacutees (5)
                • Sous-Tables Parameacutetreacutees (6)
                • Sous-Tables Parameacutetreacutees (7)
                • Sous-Tables Parameacutetreacutees (8)
                • Liste de Choix Multibase
                • Liste de Choix Multibase (2)
                • Liste de Choix Multibase Reacutesultat
                • FIN
                • Slide 149

                  9

                  Insertion dans une Vue Lrsquoinsertion QBE drsquoun deacuteterminant dans

                  une vue agrave jointure peut faire apparaicirctre auto la valeur deacutetermineacuteendash Insertion de Cpostal Ville dans

                  SELECT P Ville FROM P C WHERE PCpostal = CCpostal

                  Avec

                  P (P Nom CPostal) et C (Cpostal Ville) A expeacuterimenter sur MsAccess

                  Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

                  10

                  Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

                  attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

                  Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

                  A expeacuterimenter sur MsAccess

                  Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

                  11

                  MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

                  ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

                  Y compris externendash Lien classe ndash sous-classe

                  ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

                  A expeacuterimenter sur les vues SP1 et SP2

                  12

                  MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

                  QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

                  avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

                  valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

                  13

                  Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

                  vuendash Toute vue mono-table ou agrave un tuple de la vue

                  correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

                  Surprise ndash On insegravere un tuple dans une vue V agrave jointure

                  INSERT Vhellip

                  ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

                  14

                  MsAccess LeacutegendesMsAccess Leacutegendes

                  La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                  Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                  SP

                  s Product ID qty

                  s1 p1 300

                  s1 p2 200

                  s1 p3 400

                  s1 p4 200

                  s1 p5 100

                  s1 p6 100

                  s2 p1 300

                  hellip hellip hellip

                  15

                  Expressions de valeur Peuvent ecirctre des attr dynamiques

                  imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                  Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                  SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                  Une bonne question pour Microsoft

                  16

                  Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                  reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                  vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                  les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                  Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                  Il faut la clause Parameters a int b int

                  17

                  Pour en savoir + sur les attributs dynamiques

                  Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                  Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                  Voir le site du CERIA

                  18

                  UNION et Noms Drsquoattributs

                  SELECT [s] FROM S

                  Union

                  SELECT [p] FROM p

                  Quel nom drsquoattribut sera dans le reacutesultat

                  Sous MSAccess Dans SQL Server MySQL Oraclehellip

                  19

                  UNION et ORDER BY

                  SELECT [s] FROM S

                  Union

                  SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                  les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                  Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                  apregraves le 2egraveme SELECT

                  20

                  ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                  ORDER BY clauseORDER BY SAL - COMM

                  Exceptions UNION MINUS INTERSECT

                  Cette clause peut reacutefeacuterencer lattribut par position

                  Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                  Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                  MsAccess

                  21

                  ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                  une expression qui nest pas dans SELECT clauseSelect S CITY

                  FROM SORDER BY SNAME STATUS+50

                  exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                  Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                  Essayez

                  SELECT distinct sp[s]

                  FROM sp

                  ORDER BY spqty

                  22

                  Ordre de prioriteacute dopeacuterations

                  1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                  2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                  [e][e]

                  23

                  Preacutedicat TOP

                  SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                  SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                  SQL Server eacutequivalent de TOP drsquoAccess

                  SELECT TOP hellip WITH TIES

                  >

                  24

                  Preacutedicat TOP

                  Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                  La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                  Pour seacutelectionner les tuples 303132

                  LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                  Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                  >

                  25

                  Clause BETWEEN

                  Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                  geacuteneacuteriques ndash contrairement agrave LIKE

                  Quel sera le reacutesultat pour Jones et pourquoi

                  SELECT FROM S where sname between b and J

                  Et si on eacutecrit

                  SELECT FROM S where sname between J and b

                  ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                  26

                  Limitations de NOT

                  Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                  (SELECT CITY FROM S)

                  Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                  Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                  Hypothegravese de Monde ouvert

                  27

                  ANY et ALL

                  All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                  (SELECT STATUS FROM S WHERE SNAME = BNP)

                  si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                  si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                  Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                  (SELECT STATUS FROM S WHERE SNAME = BNP)

                  28

                  Injection SQL On ajoute en fraude agrave une requecircte a priori en

                  restriction une condition qui annule cette restriction

                  Gros deacutegacircts sur le WEB notammentSELECT

                  FROM S

                  WHERE city=london Or True

                  SQL Injection

                  S SName Status City

                  s1 smith Paris

                  s2 Jones 100 london

                  s3 Blake 30 Paris

                  s4 Clark 10 london

                  s5 Adams 30 Athens

                  29

                  Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                  True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                  SELECT

                  FROM S

                  WHERE status= 100 Or 200

                  SELECT

                  FROM S

                  WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                  SELECT

                  FROM S

                  WHERE city=london Or 100

                  30

                  Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                  Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                  BY et les valeurs individuelles en mecircme temps

                  ndash Impossible avec SQL standard

                  31

                  S Total Qty p1 p2 p3 p4 p5 p6

                  s1 1300 300 200 400 200 100 100

                  s2 700 300 400

                  s3 200 200

                  s4 900 200 300 400

                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                  Tabulations Croiseacutees

                  32

                  Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                  Transforment les valeurs dattributs en attributsndash Par exemple

                  les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                  les valeurs de P1 P2 sont les QTY (par ex) correspondants

                  33

                  S Total Qty p1 p2 p3 p4 p5 p6

                  s1 1300 300 200 400 200 100 100

                  s2 700 300 400

                  s3 200 200

                  s4 900 200 300 400

                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                  Tabulations Croiseacutees

                  34

                  TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                  Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                  Tabulations Croiseacutees

                  Nouvellescolonnes

                  35

                  La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                  On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                  Tabulations Croiseacutees

                  36

                  On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                  Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                  On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                  Mais cette clause naffecte pas les calculs des agreacutegats

                  Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                  Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                  Tabulations Croiseacutees

                  37

                  XORSELECT S[S] SStatus SCity

                  FROM S

                  WHERE Status=10 Xor city=paris

                  bull A noter le traitement du nul dans City

                  38

                  IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                  bull A noter le traitement du nul dans City

                  39

                  Sous-requecirctes

                  A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                  clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                  rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                  sous-requecircte

                  SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                  40

                  Sous-requecirctes

                  Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                  laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                  vite ou Livrerait au moins aussi vite mais en quantiteacute

                  plus grande

                  41

                  Sous-requecirctes

                  Skylinendash Tout objet non-domineacute (cacheacute

                  totalement) par un autre

                  SELECT X[s] X[p] qty delay

                  FROM SP X

                  where not exists

                  (select from SP as Y

                  where (Yqty gt= XQty and YDelay lt XDelay or

                  Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                  order by X[p]

                  42

                  Sous-requecirctes Reacutesultat

                  s p qty delay

                  s1 p1 300 15

                  s4 p1 200 13

                  s3 p2 400 15

                  s2 p2 300 12

                  s1 p3 400 17

                  s4 p4 300 11

                  s4 p5 400 7

                  s1 p6 100 8

                  s p qty Delay

                  s1 p1 300 15

                  s1 p2 200 12

                  s1 p3 400 17

                  s1 p4 200 11

                  s1 p5 100 7

                  s1 p6 100 8

                  s2 p2 300 12

                  s3 p2 400 15

                  s4 p1 200 13

                  s4 p2 200 15

                  s4 p4 300 11

                  s4 p5 400 7

                  S

                  43

                  Sous-requecirctes

                  On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                  SELECT Count() AS TotalQty

                  FROM (select distinct qty from sp)

                  On peut aussi avoir une sous-requecircte dans la clause SELECT

                  SELECT SP[s] SP[p] qty

                  (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                  round(qtyTotalQty 3) AS Fraction

                  FROM SP order by [s]

                  44

                  Sous-requecirctes

                  s p qty TotalQty Fraction

                  s1 p1 300 1300 0231

                  s1 p6 100 1300 0077

                  s1 p5 100 1300 0077

                  s1 p4 200 1300 0154

                  s1 p3 400 1300 0308

                  s1 p2 200 1300 0154

                  s2 p2 300 300 1

                  s3 p2 400 400 1

                  s4 p5 400 1100 0364

                  s4 p4 300 1100 0273

                  s4 p2 200 1100 0182

                  bull ReacutesultatSP

                  s p qty

                  s1 p1 300

                  s1 p2 200

                  s1 p3 400

                  s1 p4 200

                  s1 p5 100

                  s1 p6 100

                  s2 p2 300

                  s3 p2 400

                  s4 p1 200

                  s4 p2 200

                  s4 p4 300

                  s4 p5 400

                  45

                  Sous-requecirctesbull En Mode Graphique

                  s p qtyTotalQty

                  Fraction

                  s1 p1 300 1300 0231

                  s1 p6 100 1300 0077

                  s1 p5 100 1300 0077

                  s1 p4 200 1300 0154

                  s1 p3 400 1300 0308

                  s1 p2 200 1300 0154

                  s2 p2 300 300 1

                  s3 p2 400 400 1

                  s4 p5 400 1100 0364

                  s4 p4 300 1100 0273

                  s4 p2 200 1100 0182

                  46

                  Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                  SELECT (select count(qty) from SP

                  where qty gt= [seuil svp ]) count() as reacutesultat

                  FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                  probabiliteacute conditionnelle

                  47

                  Clause FROM imbriqueacutee

                  Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                  Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                  Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                  Agrave essayer

                  48

                  Clause FROM imbriqueacuteePossibiliteacutes

                  ndash Agreacutegations par-dessus UNION ou UNION ALL

                  ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                  MsAccess

                  ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                  Mais la reacutefeacuterence au nom de la requecircte OK

                  49

                  Clause FROM imbriqueacutee

                  SELECT sum(weight) AS [poids-total]

                  FROM (SELECT weight pcity FROM P WHERE City like l

                  UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                  50

                  Clause FROM imbriqueacutee

                  select avg(moy1) as [moyenne-des-moyennes]

                  FROM

                  (SELECT avg(weight) as moy1 FROM P WHERE City like l

                  UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                  51

                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                  select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                  52

                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                  totaux partiels et total geacuteneacuteral

                  total_Id TotalQty

                  s1 1300

                  s2 300

                  s3 400

                  s4 400

                  total Geacuteneacuteral

                  2400

                  53

                  Valeurs nulles

                  Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                  En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                  DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                  Non WHERE HAVING GROUP BY (rel 1)

                  Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                  MsAccess Oui DISTINCT Autres clauses

                  54

                  Valeurs nulles Si x est nul et y nrsquoest pas alors

                  1 x gt y est vrai ou faux

                  2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                  DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                  SELECT FROM S WHERE CITY =Paris

                  UNION

                  SELECT FROM S WHERE NOT CITY = Paris

                  est toujours pourquoi faire simpleSELECT FROM S

                  si on peut faire compliqueacute

                  55

                  Valeurs nullesValeurs nulles

                  SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                  SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                  Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                  56

                  Valeurs nulles

                  Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                  LOG (nul) -gt Error A voir cas par cas

                  57

                  Fonctions Scalaires DateTemps

                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                  58

                  Fonctions Scalaires DateTemps

                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                  weekday(day(now())-1) AS [day]FROM S

                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                  59

                  Fonctions Scalaires DateTemps

                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                  Interval Explanation

                  Yyyy Year

                  q Quarter

                  m Month

                  y Day of year

                  d Day

                  w Weekday

                  ww Week

                  h Hour

                  n Minute

                  s Second

                  60

                  Fonctions Scalaires DateTemps

                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                  Test DateDiff

                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                  61

                  Fonctions Scalaires DateTemps

                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                  Liste tous les tuples ougrave DateV est de Janvier 2009

                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                  62

                  Fonction Scalaire RND

                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                  FROM SPORDER BY rnd(qty) DESC

                  echantillon s rank

                  s1 502628087997437E-02

                  s4 0518015921115875

                  s3 075702953338623

                  63

                  Fonction Scalaire RND

                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                  FROM SPORDER BY rnd(qty) DESC

                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                  Votre commentaire ici

                  64

                  Fonctions Financiegraveres

                  Fonction DDB Calcule lamortissement deacutegressif

                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                  65

                  Fonctions Financiegraveres

                  Fonction DDB Calcule lamortissement deacutegressif

                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                  66

                  Fonction DDB

                  insert into DDB (cost salvage life factor amortiss period)

                  select 100 as cost 70 as salvage 5 as life 1 as factor

                  DDB(cost salvage life period factor) as amortiss period

                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                  67

                  Fonction DDB

                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                  68

                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                  nombres neacutegatifs

                  Fonction PMT

                  69

                  Fonction PMT

                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                  Fonction PMT calcul dannuiteacute demprunt

                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                  preacutesentevaleur_payeacutee surprime

                  -16049 005 20 200000 -320980 -120980

                  70

                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                  Et les nuls que log ne supporte pas

                  Anneacutee relative

                  Taux

                  1 4

                  2 4

                  3 3

                  4 5

                  5 5

                  Voir + dans le livre laquo SQL Design Patterns raquo

                  71

                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                  est eacutequivalente agrave

                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                  WHERE XP = SPP) FROM SP

                  Testez

                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                  72

                  LIST Function La requecircte

                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                  Comme les tabulations croiseacutees

                  ndash Mais en + simple

                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                  ndash En mono attribut (2004)

                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                  sous-formulaires

                  73

                  LIST Function

                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                  74

                  GROUP BY avec WHERE

                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                  75

                  GROUP BY

                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                  Pourquoi

                  76

                  GROUP BY avec HAVING

                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                  77

                  T-GROUP BY Proposeacute pour SQL

                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                  Le rocircle de -join par rapport agrave equi-join

                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                  INT(AVG(QTY)) AS QTY2FROM SP

                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                  78

                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                  FROM SP Vrai ou Faux

                  79

                  T-GROUP BY

                  Reacutesultat

                  part avg_qty_other_parts part_avg_qty

                  p1 250 300

                  p2 262 250

                  p3 245 400

                  p4 260 250

                  p5 260 250

                  p6 272 100

                  80

                  T-GROUP BY

                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                  81

                  Rangs Non-Denses(Non Dense Ranking)

                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                  s p qtyND-rank

                  s4 p5 400 1

                  s3 p2 400 1

                  s1 p3 400 1

                  s4 p4 300 4

                  s2 p2 300 4

                  s1 p1 300 4

                  s4 p2 200 7

                  s1 p4 200 7

                  s1 p2 200 7

                  s4 p1 200 7

                  s1 p6 100 11

                  s1 p5 100 11

                  82

                  Rangs Non-Denses(Graphique MsAccess)

                  s p qty ND-rank

                  s4 p5 400 1

                  s3 p2 400 1

                  s1 p3 400 1

                  s4 p4 300 4

                  s2 p2 300 4

                  s1 p1 300 4

                  s4 p2 200 7

                  s1 p4 200 7

                  s1 p2 200 7

                  s4 p1 200 7

                  s1 p6 100 11

                  s1 p5 100 11

                  83

                  Rangs Denses(Dense Ranking)

                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                  s p qtyD-rank

                  s1 p3 400 1

                  s3 p2 400 1

                  s4 p5 400 1

                  s1 p1 300 2

                  s2 p2 300 2

                  s4 p4 300 2

                  s1 p4 200 3

                  s1 p2 200 3

                  s4 p2 200 3

                  s4 p1 200 3

                  s1 p6 100 4

                  s1 p5 100 4

                  84

                  Rangs DensesGraphique MsAccess

                  s p qty D-rank

                  s1 p3 400 1

                  s3 p2 400 1

                  s4 p5 400 1

                  s1 p1 300 2

                  s2 p2 300 2

                  s4 p4 300 2

                  s1 p4 200 3

                  s1 p2 200 3

                  s4 p2 200 3

                  s4 p1 200 3

                  s1 p6 100 4

                  s1 p5 100 4

                  85

                  Distribution

                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                  86

                  Reacutesultat

                  s Distribution

                  s1 0419

                  s2 0097

                  s3 0129

                  s4 0355

                  87

                  Distribution Cumulative

                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                  FROM SP

                  ORDER BY SP[s]

                  88

                  Reacutesultat

                  sDistribution Cumuleacutee

                  s1 0419

                  s2 0516

                  s3 0645

                  s4 1

                  89

                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                  - Un outil - Fonction scalaire IIF de SQL Access

                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                  - On peut alternativement utiliser UNION ou UNION ALL

                  90

                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                  IIf([status]lt30OKgood) AS IIfSimple

                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                  FROM S

                  GROUP BY S[S] SSName SStatus SCity

                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                  s1 Smith Paris good good

                  s2 Jones 100 london good VGood

                  s3 Blake 30 Paris good good

                  s4 Clark 10 london OK OK

                  s5 Adams 30 Athens good good

                  bull Notez le traitement du null

                  91

                  Cateacutegorisation Emploi alternatif drsquoUNION

                  SELECT Ppname weight Very Heavy as Warning

                  FROM P where weight gt 13

                  union

                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                  UNION

                  select Ppname weight Light as warn from p where weight lt 10

                  ORDER BY warning DESC weight DESC

                  pname weight Warning

                  cam 19 Very Heavy

                  cog 19 Very Heavy

                  bolt 17 Very Heavy

                  nut 14 Very Heavy

                  screw 14 Very Heavy

                  nut 14 Quite Heavy

                  screw 14 Quite Heavy

                  screw 12 Quite Heavy

                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                  92

                  UNIONPreacutedictions de Valeurs Inconnues

                  On considegravere AVG(Qty1) pour Qty

                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                  SP

                  s p qtyQty1

                  s1 p1 300 400

                  s1 p2 200

                  s1 p3 400 600

                  s1 p4 200 300

                  s1 p5 100

                  s1 p6 100 200

                  s2 p2 300 500

                  s3 p2 400

                  s4 p1 200 100

                  s4 p2 200

                  s4 p4 300

                  s4 p5 400

                  93

                  UNIONPreacutediction de Valeurs Inconnues

                  On peut compleacuteter SP par UPDATE SPReacutesultat

                  SP

                  s p qtyQty1

                  s1 p1 300 400

                  s1 p2 200

                  s1 p3 400 600

                  s1 p4 200 300

                  s1 p5 100

                  s1 p6 100 200

                  s2 p2 300 500

                  s3 p2 400

                  s4 p1 200 100

                  s4 p2 200

                  s4 p4 300

                  s4 p5 400

                  qty for partpredicted or

                  unknown Qty1

                  100 p5

                  100 predicted value 200

                  200 p2

                  200 predicted value 200

                  300 p4

                  300 predicted value 450

                  400 p2

                  400 p5

                  400 predicted value 600

                  94

                  Tendance

                  qty Qty1

                  100 200

                  200 300

                  300 400

                  400 600

                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                  SP est supposeacute avec la DF entre Qty et Qty1

                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                  Graph 3D avec Qty en abscisses

                  95

                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                  30102008 120 27102008 4

                  25102008 131 22102008 4

                  23102008 127 20102008 4

                  17102008 269 14102008 4

                  15102008 60 12102008 4

                  11102008 295 08102008 4

                  09102008 340 06102008 4

                  08102008 324 05102008 4

                  06102008 315 03102008 4

                  96

                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                  Graphique avec une info-bulle

                  97

                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                  glissantes

                  bull CSUM (Cumulative (Running) Sums)

                  bull MAVG

                  bull MSUM

                  bull MDIFF

                  bull Voir Teradata + loin

                  98

                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                  99

                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                  Entiers est une table aux avec la colonne de12hellip10

                  100

                  Seacuteries financiegraveres

                  capital taux nval apregraves n ans

                  taux1val1 apregraves n ans

                  GainAbs GainRel

                  100 005 1 105 006 106 1 1

                  100 005 2 110 006 112 2 2

                  100 005 3 115 006 119 4 4

                  100 005 4 121 006 126 5 5

                  100 005 5 127 006 133 6 6

                  100 005 6 134 006 141 7 7

                  100 005 7 140 006 150 10 10

                  100 005 8 147 006 159 12 12

                  100 005 9 155 006 168 13 13

                  100 005 10 162 006 179 17 17

                  100 005 11 171 006 189 18 18

                  100 005 12 179 006 201 22 22

                  100 005 13 188 006 213 25 25

                  100 005 14 197 006 226 29 29

                  100 005 15 207 006 239 32 32

                  100 005 16 218 006 254 36 36

                  100 005 17 229 006 269 40 40

                  100 005 18 240 006 285 45 45

                  100 005 19 252 006 302 50 50

                  100 005 20 265 006 320 55 55

                  101

                  Seacuteries financiegraveres

                  102

                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                  financiers de la table Produits

                  bull Dans la limite L de la somme donneacutee

                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                  bull En ordre descendant de prix

                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                  bull Plusieurs actionshellip

                  103

                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                  P prix

                  p3 200

                  p1 200

                  p2 400

                  p3 200

                  p4 100

                  p6 100

                  p5 300

                  p8 300

                  p7 400

                  p10 200

                  p12 300

                  p13 300

                  104

                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                  ORDER BY 4 desc 8 123

                  105

                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                  106

                  Creacuteation drsquoun Portefeuille Discussion

                  Creacuteation drsquoun Portefeuille Discussion

                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                  107

                  Creacuteation drsquoun Portefeuille Discussion

                  Creacuteation drsquoun Portefeuille Discussion

                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                  108

                  ROLLUP(DB2 amp SQL-Server)

                  ROLLUP(DB2 amp SQL-Server)

                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                  109

                  CUBE(DB2 amp SQL-Server)

                  CUBE(DB2 amp SQL-Server)

                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                  110

                  GROUPING SETS

                  On indique explicitement les groupesndash entre ()

                  le groupe () est constitueacute de toute la table

                  SELECT p sum (qty) as tot-qty from SSP P

                  WHERE SP P = PP AND SP S = SS

                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                  HAVING tot-qty gt 100

                  Problegravemes avec des nuls que lrsquoon verra plus tard

                  111

                  Rollup Cube Grouping Setssous MsAccess

                  Il y en a pas On peut simuler ces manipulations en

                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                  Peut ecirctre laborieux pour le CUBE

                  112

                  ROLLUP

                  Remarquez le laquo null as cityraquo

                  113

                  ROLLUP

                  114

                  ROLLUP

                  Et le CUBE

                  Une solution pour l ambiguiumlteacute

                  de certains nuls

                  115

                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                  Wiley (publ)

                  116

                  Sous-Tables Parameacutetreacutees

                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                  117

                  Sous-Tables Parameacutetreacutees

                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                  118

                  Sous-Tables Parameacutetreacutees

                  119

                  Sous-Tables Parameacutetreacutees

                  120

                  Sous-Tables Parameacutetreacutees

                  121

                  Sous-Tables Parameacutetreacutees

                  122

                  Sous-Tables Parameacutetreacutees

                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                  123

                  Sous-Tables Parameacutetreacutees

                  Exeacutecution autonome

                  124

                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                  ecirctre choisi que dans une ville drsquoun client de Northwind

                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                  hellip

                  125

                  Liste de Choix Multibase

                  bull Requecircte Test-liste-de-choix mdb

                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                  126

                  Liste de Choix MultibaseReacutesultat

                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                  Tregraves bonne question agrave Microsoft

                  148

                  FIN

                  149

                  • SQL Avanceacute 2010
                  • Quoi amp Pourquoi
                  • Slide 3
                  • Synonymes
                  • Noms dattributs
                  • Slide 6
                  • Slide 7
                  • Slide 8
                  • Insertion dans une Vue
                  • Insertion dans une Vue (2)
                  • MAJ drsquoune Vue MsAccess
                  • MAJ drsquoune Vue MsAccess (2)
                  • Suppression dans une Vue MsAccess
                  • MsAccess Leacutegendes
                  • Expressions de valeur
                  • Expressions de valeur (2)
                  • Pour en savoir + sur les attributs dynamiques
                  • UNION et Noms Drsquoattributs
                  • UNION et ORDER BY
                  • ORDER BY et expressions de valeur
                  • ORDER BY et expressions de valeur (2)
                  • Ordre de prioriteacute dopeacuterations
                  • Preacutedicat TOP
                  • Preacutedicat TOP (2)
                  • Clause BETWEEN
                  • Limitations de NOT
                  • ANY et ALL
                  • Injection SQL
                  • Injection SQL (2)
                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                  • Tabulations Croiseacutees
                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                  • Tabulations Croiseacutees (2)
                  • Tabulations Croiseacutees (3)
                  • Tabulations Croiseacutees (4)
                  • Tabulations Croiseacutees (5)
                  • XOR
                  • IMP
                  • Sous-requecirctes
                  • Sous-requecirctes (2)
                  • Sous-requecirctes (3)
                  • Sous-requecirctes (4)
                  • Sous-requecirctes (5)
                  • Sous-requecirctes (6)
                  • Sous-requecirctes (7)
                  • Application aux Probabiliteacutes
                  • Clause FROM imbriqueacutee
                  • Clause FROM imbriqueacutee (2)
                  • Clause FROM imbriqueacutee (3)
                  • Clause FROM imbriqueacutee (4)
                  • Clause FROM imbriqueacutee (5)
                  • Clause FROM imbriqueacutee (6)
                  • Valeurs nulles
                  • Valeurs nulles (2)
                  • Valeurs nulles (3)
                  • Valeurs nulles (4)
                  • Fonctions Scalaires DateTemps
                  • Fonctions Scalaires DateTemps (2)
                  • Fonctions Scalaires DateTemps (3)
                  • Fonctions Scalaires DateTemps (4)
                  • Fonctions Scalaires DateTemps (5)
                  • Fonction Scalaire RND
                  • Fonction Scalaire RND (2)
                  • Fonctions Financiegraveres
                  • Fonctions Financiegraveres (2)
                  • Fonction DDB
                  • Fonction DDB (2)
                  • Fonction PMT
                  • Fonction PMT (2)
                  • Placement agrave taux variable
                  • GROUP BY
                  • LIST Function
                  • LIST Function (2)
                  • GROUP BY avec WHERE
                  • GROUP BY (2)
                  • GROUP BY avec HAVING
                  • T-GROUP BY
                  • T-GROUP BY (2)
                  • T-GROUP BY (3)
                  • T-GROUP BY (4)
                  • Rangs Non-Denses (Non Dense Ranking)
                  • Rangs Non-Denses (Graphique MsAccess)
                  • Rangs Denses (Dense Ranking)
                  • Rangs Denses Graphique MsAccess
                  • Distribution
                  • Reacutesultat
                  • Distribution Cumulative
                  • Reacutesultat (2)
                  • Cateacutegorisation
                  • Cateacutegorisation (2)
                  • Cateacutegorisation (3)
                  • UNION Preacutedictions de Valeurs Inconnues
                  • UNION Preacutediction de Valeurs Inconnues
                  • Tendance
                  • Moyenne Glissante
                  • Moyenne Glissante (2)
                  • Moyenne Glissante (3)
                  • Seacuteries financiegraveres
                  • Seacuteries financiegraveres (2)
                  • Seacuteries financiegraveres (3)
                  • Seacuteries financiegraveres (4)
                  • Creacuteation drsquoun Portefeuille
                  • Creacuteation drsquoun Portefeuille (2)
                  • Creacuteation drsquoun Portefeuille (3)
                  • Creacuteation drsquoun Portefeuille (4)
                  • Creacuteation drsquoun Portefeuille Discussion
                  • Creacuteation drsquoun Portefeuille Discussion (2)
                  • ROLLUP (DB2 amp SQL-Server)
                  • CUBE (DB2 amp SQL-Server)
                  • GROUPING SETS
                  • Rollup Cube Grouping Sets sous MsAccess
                  • Slide 112
                  • Slide 113
                  • Slide 114
                  • Autres Opeacuterations Utiles
                  • Sous-Tables Parameacutetreacutees
                  • Sous-Tables Parameacutetreacutees (2)
                  • Sous-Tables Parameacutetreacutees (3)
                  • Sous-Tables Parameacutetreacutees (4)
                  • Sous-Tables Parameacutetreacutees (5)
                  • Sous-Tables Parameacutetreacutees (6)
                  • Sous-Tables Parameacutetreacutees (7)
                  • Sous-Tables Parameacutetreacutees (8)
                  • Liste de Choix Multibase
                  • Liste de Choix Multibase (2)
                  • Liste de Choix Multibase Reacutesultat
                  • FIN
                  • Slide 149

                    10

                    Insertion dans une Vue Lrsquoinsertion QBE dans une vue avec un

                    attribut dynamique drsquoune valeur de base de cet attribue conduit agrave lrsquoapparition auto de la valeur dynamiquendash PrixTTC = PrixHT 12

                    Lrsquoeacutequivalent des attributs composeacutes sous SQL Server amp autres SGBDs

                    A expeacuterimenter sur MsAccess

                    Insertion dans une Vue MsAccessInsertion dans une Vue MsAccess

                    11

                    MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

                    ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

                    Y compris externendash Lien classe ndash sous-classe

                    ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

                    A expeacuterimenter sur les vues SP1 et SP2

                    12

                    MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

                    QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

                    avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

                    valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

                    13

                    Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

                    vuendash Toute vue mono-table ou agrave un tuple de la vue

                    correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

                    Surprise ndash On insegravere un tuple dans une vue V agrave jointure

                    INSERT Vhellip

                    ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

                    14

                    MsAccess LeacutegendesMsAccess Leacutegendes

                    La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                    Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                    SP

                    s Product ID qty

                    s1 p1 300

                    s1 p2 200

                    s1 p3 400

                    s1 p4 200

                    s1 p5 100

                    s1 p6 100

                    s2 p1 300

                    hellip hellip hellip

                    15

                    Expressions de valeur Peuvent ecirctre des attr dynamiques

                    imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                    Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                    SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                    Une bonne question pour Microsoft

                    16

                    Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                    reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                    vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                    les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                    Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                    Il faut la clause Parameters a int b int

                    17

                    Pour en savoir + sur les attributs dynamiques

                    Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                    Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                    Voir le site du CERIA

                    18

                    UNION et Noms Drsquoattributs

                    SELECT [s] FROM S

                    Union

                    SELECT [p] FROM p

                    Quel nom drsquoattribut sera dans le reacutesultat

                    Sous MSAccess Dans SQL Server MySQL Oraclehellip

                    19

                    UNION et ORDER BY

                    SELECT [s] FROM S

                    Union

                    SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                    les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                    Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                    apregraves le 2egraveme SELECT

                    20

                    ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                    ORDER BY clauseORDER BY SAL - COMM

                    Exceptions UNION MINUS INTERSECT

                    Cette clause peut reacutefeacuterencer lattribut par position

                    Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                    Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                    MsAccess

                    21

                    ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                    une expression qui nest pas dans SELECT clauseSelect S CITY

                    FROM SORDER BY SNAME STATUS+50

                    exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                    Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                    Essayez

                    SELECT distinct sp[s]

                    FROM sp

                    ORDER BY spqty

                    22

                    Ordre de prioriteacute dopeacuterations

                    1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                    2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                    [e][e]

                    23

                    Preacutedicat TOP

                    SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                    SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                    SQL Server eacutequivalent de TOP drsquoAccess

                    SELECT TOP hellip WITH TIES

                    >

                    24

                    Preacutedicat TOP

                    Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                    La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                    Pour seacutelectionner les tuples 303132

                    LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                    Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                    >

                    25

                    Clause BETWEEN

                    Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                    geacuteneacuteriques ndash contrairement agrave LIKE

                    Quel sera le reacutesultat pour Jones et pourquoi

                    SELECT FROM S where sname between b and J

                    Et si on eacutecrit

                    SELECT FROM S where sname between J and b

                    ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                    26

                    Limitations de NOT

                    Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                    (SELECT CITY FROM S)

                    Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                    Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                    Hypothegravese de Monde ouvert

                    27

                    ANY et ALL

                    All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                    (SELECT STATUS FROM S WHERE SNAME = BNP)

                    si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                    si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                    Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                    (SELECT STATUS FROM S WHERE SNAME = BNP)

                    28

                    Injection SQL On ajoute en fraude agrave une requecircte a priori en

                    restriction une condition qui annule cette restriction

                    Gros deacutegacircts sur le WEB notammentSELECT

                    FROM S

                    WHERE city=london Or True

                    SQL Injection

                    S SName Status City

                    s1 smith Paris

                    s2 Jones 100 london

                    s3 Blake 30 Paris

                    s4 Clark 10 london

                    s5 Adams 30 Athens

                    29

                    Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                    True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                    SELECT

                    FROM S

                    WHERE status= 100 Or 200

                    SELECT

                    FROM S

                    WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                    SELECT

                    FROM S

                    WHERE city=london Or 100

                    30

                    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                    Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                    BY et les valeurs individuelles en mecircme temps

                    ndash Impossible avec SQL standard

                    31

                    S Total Qty p1 p2 p3 p4 p5 p6

                    s1 1300 300 200 400 200 100 100

                    s2 700 300 400

                    s3 200 200

                    s4 900 200 300 400

                    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                    Tabulations Croiseacutees

                    32

                    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                    Transforment les valeurs dattributs en attributsndash Par exemple

                    les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                    les valeurs de P1 P2 sont les QTY (par ex) correspondants

                    33

                    S Total Qty p1 p2 p3 p4 p5 p6

                    s1 1300 300 200 400 200 100 100

                    s2 700 300 400

                    s3 200 200

                    s4 900 200 300 400

                    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                    Tabulations Croiseacutees

                    34

                    TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                    Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                    Tabulations Croiseacutees

                    Nouvellescolonnes

                    35

                    La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                    On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                    Tabulations Croiseacutees

                    36

                    On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                    Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                    On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                    Mais cette clause naffecte pas les calculs des agreacutegats

                    Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                    Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                    Tabulations Croiseacutees

                    37

                    XORSELECT S[S] SStatus SCity

                    FROM S

                    WHERE Status=10 Xor city=paris

                    bull A noter le traitement du nul dans City

                    38

                    IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                    bull A noter le traitement du nul dans City

                    39

                    Sous-requecirctes

                    A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                    clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                    rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                    sous-requecircte

                    SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                    40

                    Sous-requecirctes

                    Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                    laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                    vite ou Livrerait au moins aussi vite mais en quantiteacute

                    plus grande

                    41

                    Sous-requecirctes

                    Skylinendash Tout objet non-domineacute (cacheacute

                    totalement) par un autre

                    SELECT X[s] X[p] qty delay

                    FROM SP X

                    where not exists

                    (select from SP as Y

                    where (Yqty gt= XQty and YDelay lt XDelay or

                    Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                    order by X[p]

                    42

                    Sous-requecirctes Reacutesultat

                    s p qty delay

                    s1 p1 300 15

                    s4 p1 200 13

                    s3 p2 400 15

                    s2 p2 300 12

                    s1 p3 400 17

                    s4 p4 300 11

                    s4 p5 400 7

                    s1 p6 100 8

                    s p qty Delay

                    s1 p1 300 15

                    s1 p2 200 12

                    s1 p3 400 17

                    s1 p4 200 11

                    s1 p5 100 7

                    s1 p6 100 8

                    s2 p2 300 12

                    s3 p2 400 15

                    s4 p1 200 13

                    s4 p2 200 15

                    s4 p4 300 11

                    s4 p5 400 7

                    S

                    43

                    Sous-requecirctes

                    On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                    SELECT Count() AS TotalQty

                    FROM (select distinct qty from sp)

                    On peut aussi avoir une sous-requecircte dans la clause SELECT

                    SELECT SP[s] SP[p] qty

                    (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                    round(qtyTotalQty 3) AS Fraction

                    FROM SP order by [s]

                    44

                    Sous-requecirctes

                    s p qty TotalQty Fraction

                    s1 p1 300 1300 0231

                    s1 p6 100 1300 0077

                    s1 p5 100 1300 0077

                    s1 p4 200 1300 0154

                    s1 p3 400 1300 0308

                    s1 p2 200 1300 0154

                    s2 p2 300 300 1

                    s3 p2 400 400 1

                    s4 p5 400 1100 0364

                    s4 p4 300 1100 0273

                    s4 p2 200 1100 0182

                    bull ReacutesultatSP

                    s p qty

                    s1 p1 300

                    s1 p2 200

                    s1 p3 400

                    s1 p4 200

                    s1 p5 100

                    s1 p6 100

                    s2 p2 300

                    s3 p2 400

                    s4 p1 200

                    s4 p2 200

                    s4 p4 300

                    s4 p5 400

                    45

                    Sous-requecirctesbull En Mode Graphique

                    s p qtyTotalQty

                    Fraction

                    s1 p1 300 1300 0231

                    s1 p6 100 1300 0077

                    s1 p5 100 1300 0077

                    s1 p4 200 1300 0154

                    s1 p3 400 1300 0308

                    s1 p2 200 1300 0154

                    s2 p2 300 300 1

                    s3 p2 400 400 1

                    s4 p5 400 1100 0364

                    s4 p4 300 1100 0273

                    s4 p2 200 1100 0182

                    46

                    Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                    SELECT (select count(qty) from SP

                    where qty gt= [seuil svp ]) count() as reacutesultat

                    FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                    probabiliteacute conditionnelle

                    47

                    Clause FROM imbriqueacutee

                    Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                    Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                    Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                    Agrave essayer

                    48

                    Clause FROM imbriqueacuteePossibiliteacutes

                    ndash Agreacutegations par-dessus UNION ou UNION ALL

                    ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                    MsAccess

                    ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                    Mais la reacutefeacuterence au nom de la requecircte OK

                    49

                    Clause FROM imbriqueacutee

                    SELECT sum(weight) AS [poids-total]

                    FROM (SELECT weight pcity FROM P WHERE City like l

                    UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                    50

                    Clause FROM imbriqueacutee

                    select avg(moy1) as [moyenne-des-moyennes]

                    FROM

                    (SELECT avg(weight) as moy1 FROM P WHERE City like l

                    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                    51

                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                    52

                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                    totaux partiels et total geacuteneacuteral

                    total_Id TotalQty

                    s1 1300

                    s2 300

                    s3 400

                    s4 400

                    total Geacuteneacuteral

                    2400

                    53

                    Valeurs nulles

                    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                    Non WHERE HAVING GROUP BY (rel 1)

                    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                    MsAccess Oui DISTINCT Autres clauses

                    54

                    Valeurs nulles Si x est nul et y nrsquoest pas alors

                    1 x gt y est vrai ou faux

                    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                    SELECT FROM S WHERE CITY =Paris

                    UNION

                    SELECT FROM S WHERE NOT CITY = Paris

                    est toujours pourquoi faire simpleSELECT FROM S

                    si on peut faire compliqueacute

                    55

                    Valeurs nullesValeurs nulles

                    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                    56

                    Valeurs nulles

                    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                    LOG (nul) -gt Error A voir cas par cas

                    57

                    Fonctions Scalaires DateTemps

                    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                    58

                    Fonctions Scalaires DateTemps

                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                    weekday(day(now())-1) AS [day]FROM S

                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                    59

                    Fonctions Scalaires DateTemps

                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                    Interval Explanation

                    Yyyy Year

                    q Quarter

                    m Month

                    y Day of year

                    d Day

                    w Weekday

                    ww Week

                    h Hour

                    n Minute

                    s Second

                    60

                    Fonctions Scalaires DateTemps

                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                    Test DateDiff

                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                    61

                    Fonctions Scalaires DateTemps

                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                    Liste tous les tuples ougrave DateV est de Janvier 2009

                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                    62

                    Fonction Scalaire RND

                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                    FROM SPORDER BY rnd(qty) DESC

                    echantillon s rank

                    s1 502628087997437E-02

                    s4 0518015921115875

                    s3 075702953338623

                    63

                    Fonction Scalaire RND

                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                    FROM SPORDER BY rnd(qty) DESC

                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                    Votre commentaire ici

                    64

                    Fonctions Financiegraveres

                    Fonction DDB Calcule lamortissement deacutegressif

                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                    65

                    Fonctions Financiegraveres

                    Fonction DDB Calcule lamortissement deacutegressif

                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                    66

                    Fonction DDB

                    insert into DDB (cost salvage life factor amortiss period)

                    select 100 as cost 70 as salvage 5 as life 1 as factor

                    DDB(cost salvage life period factor) as amortiss period

                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                    67

                    Fonction DDB

                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                    68

                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                    nombres neacutegatifs

                    Fonction PMT

                    69

                    Fonction PMT

                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                    Fonction PMT calcul dannuiteacute demprunt

                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                    preacutesentevaleur_payeacutee surprime

                    -16049 005 20 200000 -320980 -120980

                    70

                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                    Et les nuls que log ne supporte pas

                    Anneacutee relative

                    Taux

                    1 4

                    2 4

                    3 3

                    4 5

                    5 5

                    Voir + dans le livre laquo SQL Design Patterns raquo

                    71

                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                    est eacutequivalente agrave

                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                    WHERE XP = SPP) FROM SP

                    Testez

                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                    72

                    LIST Function La requecircte

                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                    Comme les tabulations croiseacutees

                    ndash Mais en + simple

                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                    ndash En mono attribut (2004)

                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                    sous-formulaires

                    73

                    LIST Function

                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                    74

                    GROUP BY avec WHERE

                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                    75

                    GROUP BY

                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                    Pourquoi

                    76

                    GROUP BY avec HAVING

                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                    77

                    T-GROUP BY Proposeacute pour SQL

                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                    Le rocircle de -join par rapport agrave equi-join

                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                    INT(AVG(QTY)) AS QTY2FROM SP

                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                    78

                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                    FROM SP Vrai ou Faux

                    79

                    T-GROUP BY

                    Reacutesultat

                    part avg_qty_other_parts part_avg_qty

                    p1 250 300

                    p2 262 250

                    p3 245 400

                    p4 260 250

                    p5 260 250

                    p6 272 100

                    80

                    T-GROUP BY

                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                    81

                    Rangs Non-Denses(Non Dense Ranking)

                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                    s p qtyND-rank

                    s4 p5 400 1

                    s3 p2 400 1

                    s1 p3 400 1

                    s4 p4 300 4

                    s2 p2 300 4

                    s1 p1 300 4

                    s4 p2 200 7

                    s1 p4 200 7

                    s1 p2 200 7

                    s4 p1 200 7

                    s1 p6 100 11

                    s1 p5 100 11

                    82

                    Rangs Non-Denses(Graphique MsAccess)

                    s p qty ND-rank

                    s4 p5 400 1

                    s3 p2 400 1

                    s1 p3 400 1

                    s4 p4 300 4

                    s2 p2 300 4

                    s1 p1 300 4

                    s4 p2 200 7

                    s1 p4 200 7

                    s1 p2 200 7

                    s4 p1 200 7

                    s1 p6 100 11

                    s1 p5 100 11

                    83

                    Rangs Denses(Dense Ranking)

                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                    s p qtyD-rank

                    s1 p3 400 1

                    s3 p2 400 1

                    s4 p5 400 1

                    s1 p1 300 2

                    s2 p2 300 2

                    s4 p4 300 2

                    s1 p4 200 3

                    s1 p2 200 3

                    s4 p2 200 3

                    s4 p1 200 3

                    s1 p6 100 4

                    s1 p5 100 4

                    84

                    Rangs DensesGraphique MsAccess

                    s p qty D-rank

                    s1 p3 400 1

                    s3 p2 400 1

                    s4 p5 400 1

                    s1 p1 300 2

                    s2 p2 300 2

                    s4 p4 300 2

                    s1 p4 200 3

                    s1 p2 200 3

                    s4 p2 200 3

                    s4 p1 200 3

                    s1 p6 100 4

                    s1 p5 100 4

                    85

                    Distribution

                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                    86

                    Reacutesultat

                    s Distribution

                    s1 0419

                    s2 0097

                    s3 0129

                    s4 0355

                    87

                    Distribution Cumulative

                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                    FROM SP

                    ORDER BY SP[s]

                    88

                    Reacutesultat

                    sDistribution Cumuleacutee

                    s1 0419

                    s2 0516

                    s3 0645

                    s4 1

                    89

                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                    - Un outil - Fonction scalaire IIF de SQL Access

                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                    - On peut alternativement utiliser UNION ou UNION ALL

                    90

                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                    IIf([status]lt30OKgood) AS IIfSimple

                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                    FROM S

                    GROUP BY S[S] SSName SStatus SCity

                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                    s1 Smith Paris good good

                    s2 Jones 100 london good VGood

                    s3 Blake 30 Paris good good

                    s4 Clark 10 london OK OK

                    s5 Adams 30 Athens good good

                    bull Notez le traitement du null

                    91

                    Cateacutegorisation Emploi alternatif drsquoUNION

                    SELECT Ppname weight Very Heavy as Warning

                    FROM P where weight gt 13

                    union

                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                    UNION

                    select Ppname weight Light as warn from p where weight lt 10

                    ORDER BY warning DESC weight DESC

                    pname weight Warning

                    cam 19 Very Heavy

                    cog 19 Very Heavy

                    bolt 17 Very Heavy

                    nut 14 Very Heavy

                    screw 14 Very Heavy

                    nut 14 Quite Heavy

                    screw 14 Quite Heavy

                    screw 12 Quite Heavy

                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                    92

                    UNIONPreacutedictions de Valeurs Inconnues

                    On considegravere AVG(Qty1) pour Qty

                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                    SP

                    s p qtyQty1

                    s1 p1 300 400

                    s1 p2 200

                    s1 p3 400 600

                    s1 p4 200 300

                    s1 p5 100

                    s1 p6 100 200

                    s2 p2 300 500

                    s3 p2 400

                    s4 p1 200 100

                    s4 p2 200

                    s4 p4 300

                    s4 p5 400

                    93

                    UNIONPreacutediction de Valeurs Inconnues

                    On peut compleacuteter SP par UPDATE SPReacutesultat

                    SP

                    s p qtyQty1

                    s1 p1 300 400

                    s1 p2 200

                    s1 p3 400 600

                    s1 p4 200 300

                    s1 p5 100

                    s1 p6 100 200

                    s2 p2 300 500

                    s3 p2 400

                    s4 p1 200 100

                    s4 p2 200

                    s4 p4 300

                    s4 p5 400

                    qty for partpredicted or

                    unknown Qty1

                    100 p5

                    100 predicted value 200

                    200 p2

                    200 predicted value 200

                    300 p4

                    300 predicted value 450

                    400 p2

                    400 p5

                    400 predicted value 600

                    94

                    Tendance

                    qty Qty1

                    100 200

                    200 300

                    300 400

                    400 600

                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                    SP est supposeacute avec la DF entre Qty et Qty1

                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                    Graph 3D avec Qty en abscisses

                    95

                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                    30102008 120 27102008 4

                    25102008 131 22102008 4

                    23102008 127 20102008 4

                    17102008 269 14102008 4

                    15102008 60 12102008 4

                    11102008 295 08102008 4

                    09102008 340 06102008 4

                    08102008 324 05102008 4

                    06102008 315 03102008 4

                    96

                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                    Graphique avec une info-bulle

                    97

                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                    glissantes

                    bull CSUM (Cumulative (Running) Sums)

                    bull MAVG

                    bull MSUM

                    bull MDIFF

                    bull Voir Teradata + loin

                    98

                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                    99

                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                    Entiers est une table aux avec la colonne de12hellip10

                    100

                    Seacuteries financiegraveres

                    capital taux nval apregraves n ans

                    taux1val1 apregraves n ans

                    GainAbs GainRel

                    100 005 1 105 006 106 1 1

                    100 005 2 110 006 112 2 2

                    100 005 3 115 006 119 4 4

                    100 005 4 121 006 126 5 5

                    100 005 5 127 006 133 6 6

                    100 005 6 134 006 141 7 7

                    100 005 7 140 006 150 10 10

                    100 005 8 147 006 159 12 12

                    100 005 9 155 006 168 13 13

                    100 005 10 162 006 179 17 17

                    100 005 11 171 006 189 18 18

                    100 005 12 179 006 201 22 22

                    100 005 13 188 006 213 25 25

                    100 005 14 197 006 226 29 29

                    100 005 15 207 006 239 32 32

                    100 005 16 218 006 254 36 36

                    100 005 17 229 006 269 40 40

                    100 005 18 240 006 285 45 45

                    100 005 19 252 006 302 50 50

                    100 005 20 265 006 320 55 55

                    101

                    Seacuteries financiegraveres

                    102

                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                    financiers de la table Produits

                    bull Dans la limite L de la somme donneacutee

                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                    bull En ordre descendant de prix

                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                    bull Plusieurs actionshellip

                    103

                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                    P prix

                    p3 200

                    p1 200

                    p2 400

                    p3 200

                    p4 100

                    p6 100

                    p5 300

                    p8 300

                    p7 400

                    p10 200

                    p12 300

                    p13 300

                    104

                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                    ORDER BY 4 desc 8 123

                    105

                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                    106

                    Creacuteation drsquoun Portefeuille Discussion

                    Creacuteation drsquoun Portefeuille Discussion

                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                    107

                    Creacuteation drsquoun Portefeuille Discussion

                    Creacuteation drsquoun Portefeuille Discussion

                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                    108

                    ROLLUP(DB2 amp SQL-Server)

                    ROLLUP(DB2 amp SQL-Server)

                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                    109

                    CUBE(DB2 amp SQL-Server)

                    CUBE(DB2 amp SQL-Server)

                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                    110

                    GROUPING SETS

                    On indique explicitement les groupesndash entre ()

                    le groupe () est constitueacute de toute la table

                    SELECT p sum (qty) as tot-qty from SSP P

                    WHERE SP P = PP AND SP S = SS

                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                    HAVING tot-qty gt 100

                    Problegravemes avec des nuls que lrsquoon verra plus tard

                    111

                    Rollup Cube Grouping Setssous MsAccess

                    Il y en a pas On peut simuler ces manipulations en

                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                    Peut ecirctre laborieux pour le CUBE

                    112

                    ROLLUP

                    Remarquez le laquo null as cityraquo

                    113

                    ROLLUP

                    114

                    ROLLUP

                    Et le CUBE

                    Une solution pour l ambiguiumlteacute

                    de certains nuls

                    115

                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                    Wiley (publ)

                    116

                    Sous-Tables Parameacutetreacutees

                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                    117

                    Sous-Tables Parameacutetreacutees

                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                    118

                    Sous-Tables Parameacutetreacutees

                    119

                    Sous-Tables Parameacutetreacutees

                    120

                    Sous-Tables Parameacutetreacutees

                    121

                    Sous-Tables Parameacutetreacutees

                    122

                    Sous-Tables Parameacutetreacutees

                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                    123

                    Sous-Tables Parameacutetreacutees

                    Exeacutecution autonome

                    124

                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                    ecirctre choisi que dans une ville drsquoun client de Northwind

                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                    hellip

                    125

                    Liste de Choix Multibase

                    bull Requecircte Test-liste-de-choix mdb

                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                    126

                    Liste de Choix MultibaseReacutesultat

                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                    Tregraves bonne question agrave Microsoft

                    148

                    FIN

                    149

                    • SQL Avanceacute 2010
                    • Quoi amp Pourquoi
                    • Slide 3
                    • Synonymes
                    • Noms dattributs
                    • Slide 6
                    • Slide 7
                    • Slide 8
                    • Insertion dans une Vue
                    • Insertion dans une Vue (2)
                    • MAJ drsquoune Vue MsAccess
                    • MAJ drsquoune Vue MsAccess (2)
                    • Suppression dans une Vue MsAccess
                    • MsAccess Leacutegendes
                    • Expressions de valeur
                    • Expressions de valeur (2)
                    • Pour en savoir + sur les attributs dynamiques
                    • UNION et Noms Drsquoattributs
                    • UNION et ORDER BY
                    • ORDER BY et expressions de valeur
                    • ORDER BY et expressions de valeur (2)
                    • Ordre de prioriteacute dopeacuterations
                    • Preacutedicat TOP
                    • Preacutedicat TOP (2)
                    • Clause BETWEEN
                    • Limitations de NOT
                    • ANY et ALL
                    • Injection SQL
                    • Injection SQL (2)
                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                    • Tabulations Croiseacutees
                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                    • Tabulations Croiseacutees (2)
                    • Tabulations Croiseacutees (3)
                    • Tabulations Croiseacutees (4)
                    • Tabulations Croiseacutees (5)
                    • XOR
                    • IMP
                    • Sous-requecirctes
                    • Sous-requecirctes (2)
                    • Sous-requecirctes (3)
                    • Sous-requecirctes (4)
                    • Sous-requecirctes (5)
                    • Sous-requecirctes (6)
                    • Sous-requecirctes (7)
                    • Application aux Probabiliteacutes
                    • Clause FROM imbriqueacutee
                    • Clause FROM imbriqueacutee (2)
                    • Clause FROM imbriqueacutee (3)
                    • Clause FROM imbriqueacutee (4)
                    • Clause FROM imbriqueacutee (5)
                    • Clause FROM imbriqueacutee (6)
                    • Valeurs nulles
                    • Valeurs nulles (2)
                    • Valeurs nulles (3)
                    • Valeurs nulles (4)
                    • Fonctions Scalaires DateTemps
                    • Fonctions Scalaires DateTemps (2)
                    • Fonctions Scalaires DateTemps (3)
                    • Fonctions Scalaires DateTemps (4)
                    • Fonctions Scalaires DateTemps (5)
                    • Fonction Scalaire RND
                    • Fonction Scalaire RND (2)
                    • Fonctions Financiegraveres
                    • Fonctions Financiegraveres (2)
                    • Fonction DDB
                    • Fonction DDB (2)
                    • Fonction PMT
                    • Fonction PMT (2)
                    • Placement agrave taux variable
                    • GROUP BY
                    • LIST Function
                    • LIST Function (2)
                    • GROUP BY avec WHERE
                    • GROUP BY (2)
                    • GROUP BY avec HAVING
                    • T-GROUP BY
                    • T-GROUP BY (2)
                    • T-GROUP BY (3)
                    • T-GROUP BY (4)
                    • Rangs Non-Denses (Non Dense Ranking)
                    • Rangs Non-Denses (Graphique MsAccess)
                    • Rangs Denses (Dense Ranking)
                    • Rangs Denses Graphique MsAccess
                    • Distribution
                    • Reacutesultat
                    • Distribution Cumulative
                    • Reacutesultat (2)
                    • Cateacutegorisation
                    • Cateacutegorisation (2)
                    • Cateacutegorisation (3)
                    • UNION Preacutedictions de Valeurs Inconnues
                    • UNION Preacutediction de Valeurs Inconnues
                    • Tendance
                    • Moyenne Glissante
                    • Moyenne Glissante (2)
                    • Moyenne Glissante (3)
                    • Seacuteries financiegraveres
                    • Seacuteries financiegraveres (2)
                    • Seacuteries financiegraveres (3)
                    • Seacuteries financiegraveres (4)
                    • Creacuteation drsquoun Portefeuille
                    • Creacuteation drsquoun Portefeuille (2)
                    • Creacuteation drsquoun Portefeuille (3)
                    • Creacuteation drsquoun Portefeuille (4)
                    • Creacuteation drsquoun Portefeuille Discussion
                    • Creacuteation drsquoun Portefeuille Discussion (2)
                    • ROLLUP (DB2 amp SQL-Server)
                    • CUBE (DB2 amp SQL-Server)
                    • GROUPING SETS
                    • Rollup Cube Grouping Sets sous MsAccess
                    • Slide 112
                    • Slide 113
                    • Slide 114
                    • Autres Opeacuterations Utiles
                    • Sous-Tables Parameacutetreacutees
                    • Sous-Tables Parameacutetreacutees (2)
                    • Sous-Tables Parameacutetreacutees (3)
                    • Sous-Tables Parameacutetreacutees (4)
                    • Sous-Tables Parameacutetreacutees (5)
                    • Sous-Tables Parameacutetreacutees (6)
                    • Sous-Tables Parameacutetreacutees (7)
                    • Sous-Tables Parameacutetreacutees (8)
                    • Liste de Choix Multibase
                    • Liste de Choix Multibase (2)
                    • Liste de Choix Multibase Reacutesultat
                    • FIN
                    • Slide 149

                      11

                      MAJ drsquoune Vue MsAccess On peut mettre agrave jour une vue

                      ndash Toute vue incluant la cleacute primairendash Notamment comme attribut de jointure

                      Y compris externendash Lien classe ndash sous-classe

                      ndash Le reacutesultat peut ecirctre la MAJ simultaneacutee de plusieurs tables sources de la vue

                      A expeacuterimenter sur les vues SP1 et SP2

                      12

                      MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

                      QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

                      avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

                      valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

                      13

                      Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

                      vuendash Toute vue mono-table ou agrave un tuple de la vue

                      correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

                      Surprise ndash On insegravere un tuple dans une vue V agrave jointure

                      INSERT Vhellip

                      ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

                      14

                      MsAccess LeacutegendesMsAccess Leacutegendes

                      La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                      Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                      SP

                      s Product ID qty

                      s1 p1 300

                      s1 p2 200

                      s1 p3 400

                      s1 p4 200

                      s1 p5 100

                      s1 p6 100

                      s2 p1 300

                      hellip hellip hellip

                      15

                      Expressions de valeur Peuvent ecirctre des attr dynamiques

                      imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                      Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                      SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                      Une bonne question pour Microsoft

                      16

                      Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                      reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                      vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                      les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                      Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                      Il faut la clause Parameters a int b int

                      17

                      Pour en savoir + sur les attributs dynamiques

                      Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                      Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                      Voir le site du CERIA

                      18

                      UNION et Noms Drsquoattributs

                      SELECT [s] FROM S

                      Union

                      SELECT [p] FROM p

                      Quel nom drsquoattribut sera dans le reacutesultat

                      Sous MSAccess Dans SQL Server MySQL Oraclehellip

                      19

                      UNION et ORDER BY

                      SELECT [s] FROM S

                      Union

                      SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                      les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                      Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                      apregraves le 2egraveme SELECT

                      20

                      ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                      ORDER BY clauseORDER BY SAL - COMM

                      Exceptions UNION MINUS INTERSECT

                      Cette clause peut reacutefeacuterencer lattribut par position

                      Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                      Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                      MsAccess

                      21

                      ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                      une expression qui nest pas dans SELECT clauseSelect S CITY

                      FROM SORDER BY SNAME STATUS+50

                      exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                      Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                      Essayez

                      SELECT distinct sp[s]

                      FROM sp

                      ORDER BY spqty

                      22

                      Ordre de prioriteacute dopeacuterations

                      1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                      2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                      [e][e]

                      23

                      Preacutedicat TOP

                      SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                      SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                      SQL Server eacutequivalent de TOP drsquoAccess

                      SELECT TOP hellip WITH TIES

                      >

                      24

                      Preacutedicat TOP

                      Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                      La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                      Pour seacutelectionner les tuples 303132

                      LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                      Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                      >

                      25

                      Clause BETWEEN

                      Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                      geacuteneacuteriques ndash contrairement agrave LIKE

                      Quel sera le reacutesultat pour Jones et pourquoi

                      SELECT FROM S where sname between b and J

                      Et si on eacutecrit

                      SELECT FROM S where sname between J and b

                      ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                      26

                      Limitations de NOT

                      Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                      (SELECT CITY FROM S)

                      Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                      Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                      Hypothegravese de Monde ouvert

                      27

                      ANY et ALL

                      All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                      (SELECT STATUS FROM S WHERE SNAME = BNP)

                      si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                      si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                      Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                      (SELECT STATUS FROM S WHERE SNAME = BNP)

                      28

                      Injection SQL On ajoute en fraude agrave une requecircte a priori en

                      restriction une condition qui annule cette restriction

                      Gros deacutegacircts sur le WEB notammentSELECT

                      FROM S

                      WHERE city=london Or True

                      SQL Injection

                      S SName Status City

                      s1 smith Paris

                      s2 Jones 100 london

                      s3 Blake 30 Paris

                      s4 Clark 10 london

                      s5 Adams 30 Athens

                      29

                      Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                      True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                      SELECT

                      FROM S

                      WHERE status= 100 Or 200

                      SELECT

                      FROM S

                      WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                      SELECT

                      FROM S

                      WHERE city=london Or 100

                      30

                      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                      Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                      BY et les valeurs individuelles en mecircme temps

                      ndash Impossible avec SQL standard

                      31

                      S Total Qty p1 p2 p3 p4 p5 p6

                      s1 1300 300 200 400 200 100 100

                      s2 700 300 400

                      s3 200 200

                      s4 900 200 300 400

                      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                      Tabulations Croiseacutees

                      32

                      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                      Transforment les valeurs dattributs en attributsndash Par exemple

                      les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                      les valeurs de P1 P2 sont les QTY (par ex) correspondants

                      33

                      S Total Qty p1 p2 p3 p4 p5 p6

                      s1 1300 300 200 400 200 100 100

                      s2 700 300 400

                      s3 200 200

                      s4 900 200 300 400

                      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                      Tabulations Croiseacutees

                      34

                      TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                      Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                      Tabulations Croiseacutees

                      Nouvellescolonnes

                      35

                      La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                      On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                      Tabulations Croiseacutees

                      36

                      On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                      Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                      On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                      Mais cette clause naffecte pas les calculs des agreacutegats

                      Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                      Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                      Tabulations Croiseacutees

                      37

                      XORSELECT S[S] SStatus SCity

                      FROM S

                      WHERE Status=10 Xor city=paris

                      bull A noter le traitement du nul dans City

                      38

                      IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                      bull A noter le traitement du nul dans City

                      39

                      Sous-requecirctes

                      A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                      clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                      rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                      sous-requecircte

                      SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                      40

                      Sous-requecirctes

                      Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                      laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                      vite ou Livrerait au moins aussi vite mais en quantiteacute

                      plus grande

                      41

                      Sous-requecirctes

                      Skylinendash Tout objet non-domineacute (cacheacute

                      totalement) par un autre

                      SELECT X[s] X[p] qty delay

                      FROM SP X

                      where not exists

                      (select from SP as Y

                      where (Yqty gt= XQty and YDelay lt XDelay or

                      Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                      order by X[p]

                      42

                      Sous-requecirctes Reacutesultat

                      s p qty delay

                      s1 p1 300 15

                      s4 p1 200 13

                      s3 p2 400 15

                      s2 p2 300 12

                      s1 p3 400 17

                      s4 p4 300 11

                      s4 p5 400 7

                      s1 p6 100 8

                      s p qty Delay

                      s1 p1 300 15

                      s1 p2 200 12

                      s1 p3 400 17

                      s1 p4 200 11

                      s1 p5 100 7

                      s1 p6 100 8

                      s2 p2 300 12

                      s3 p2 400 15

                      s4 p1 200 13

                      s4 p2 200 15

                      s4 p4 300 11

                      s4 p5 400 7

                      S

                      43

                      Sous-requecirctes

                      On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                      SELECT Count() AS TotalQty

                      FROM (select distinct qty from sp)

                      On peut aussi avoir une sous-requecircte dans la clause SELECT

                      SELECT SP[s] SP[p] qty

                      (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                      round(qtyTotalQty 3) AS Fraction

                      FROM SP order by [s]

                      44

                      Sous-requecirctes

                      s p qty TotalQty Fraction

                      s1 p1 300 1300 0231

                      s1 p6 100 1300 0077

                      s1 p5 100 1300 0077

                      s1 p4 200 1300 0154

                      s1 p3 400 1300 0308

                      s1 p2 200 1300 0154

                      s2 p2 300 300 1

                      s3 p2 400 400 1

                      s4 p5 400 1100 0364

                      s4 p4 300 1100 0273

                      s4 p2 200 1100 0182

                      bull ReacutesultatSP

                      s p qty

                      s1 p1 300

                      s1 p2 200

                      s1 p3 400

                      s1 p4 200

                      s1 p5 100

                      s1 p6 100

                      s2 p2 300

                      s3 p2 400

                      s4 p1 200

                      s4 p2 200

                      s4 p4 300

                      s4 p5 400

                      45

                      Sous-requecirctesbull En Mode Graphique

                      s p qtyTotalQty

                      Fraction

                      s1 p1 300 1300 0231

                      s1 p6 100 1300 0077

                      s1 p5 100 1300 0077

                      s1 p4 200 1300 0154

                      s1 p3 400 1300 0308

                      s1 p2 200 1300 0154

                      s2 p2 300 300 1

                      s3 p2 400 400 1

                      s4 p5 400 1100 0364

                      s4 p4 300 1100 0273

                      s4 p2 200 1100 0182

                      46

                      Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                      SELECT (select count(qty) from SP

                      where qty gt= [seuil svp ]) count() as reacutesultat

                      FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                      probabiliteacute conditionnelle

                      47

                      Clause FROM imbriqueacutee

                      Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                      Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                      Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                      Agrave essayer

                      48

                      Clause FROM imbriqueacuteePossibiliteacutes

                      ndash Agreacutegations par-dessus UNION ou UNION ALL

                      ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                      MsAccess

                      ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                      Mais la reacutefeacuterence au nom de la requecircte OK

                      49

                      Clause FROM imbriqueacutee

                      SELECT sum(weight) AS [poids-total]

                      FROM (SELECT weight pcity FROM P WHERE City like l

                      UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                      50

                      Clause FROM imbriqueacutee

                      select avg(moy1) as [moyenne-des-moyennes]

                      FROM

                      (SELECT avg(weight) as moy1 FROM P WHERE City like l

                      UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                      51

                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                      52

                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                      totaux partiels et total geacuteneacuteral

                      total_Id TotalQty

                      s1 1300

                      s2 300

                      s3 400

                      s4 400

                      total Geacuteneacuteral

                      2400

                      53

                      Valeurs nulles

                      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                      Non WHERE HAVING GROUP BY (rel 1)

                      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                      MsAccess Oui DISTINCT Autres clauses

                      54

                      Valeurs nulles Si x est nul et y nrsquoest pas alors

                      1 x gt y est vrai ou faux

                      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                      SELECT FROM S WHERE CITY =Paris

                      UNION

                      SELECT FROM S WHERE NOT CITY = Paris

                      est toujours pourquoi faire simpleSELECT FROM S

                      si on peut faire compliqueacute

                      55

                      Valeurs nullesValeurs nulles

                      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                      56

                      Valeurs nulles

                      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                      LOG (nul) -gt Error A voir cas par cas

                      57

                      Fonctions Scalaires DateTemps

                      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                      58

                      Fonctions Scalaires DateTemps

                      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                      weekday(day(now())-1) AS [day]FROM S

                      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                      59

                      Fonctions Scalaires DateTemps

                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                      Interval Explanation

                      Yyyy Year

                      q Quarter

                      m Month

                      y Day of year

                      d Day

                      w Weekday

                      ww Week

                      h Hour

                      n Minute

                      s Second

                      60

                      Fonctions Scalaires DateTemps

                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                      Test DateDiff

                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                      61

                      Fonctions Scalaires DateTemps

                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                      Liste tous les tuples ougrave DateV est de Janvier 2009

                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                      62

                      Fonction Scalaire RND

                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                      FROM SPORDER BY rnd(qty) DESC

                      echantillon s rank

                      s1 502628087997437E-02

                      s4 0518015921115875

                      s3 075702953338623

                      63

                      Fonction Scalaire RND

                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                      FROM SPORDER BY rnd(qty) DESC

                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                      Votre commentaire ici

                      64

                      Fonctions Financiegraveres

                      Fonction DDB Calcule lamortissement deacutegressif

                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                      65

                      Fonctions Financiegraveres

                      Fonction DDB Calcule lamortissement deacutegressif

                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                      66

                      Fonction DDB

                      insert into DDB (cost salvage life factor amortiss period)

                      select 100 as cost 70 as salvage 5 as life 1 as factor

                      DDB(cost salvage life period factor) as amortiss period

                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                      67

                      Fonction DDB

                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                      68

                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                      nombres neacutegatifs

                      Fonction PMT

                      69

                      Fonction PMT

                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                      Fonction PMT calcul dannuiteacute demprunt

                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                      preacutesentevaleur_payeacutee surprime

                      -16049 005 20 200000 -320980 -120980

                      70

                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                      Et les nuls que log ne supporte pas

                      Anneacutee relative

                      Taux

                      1 4

                      2 4

                      3 3

                      4 5

                      5 5

                      Voir + dans le livre laquo SQL Design Patterns raquo

                      71

                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                      est eacutequivalente agrave

                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                      WHERE XP = SPP) FROM SP

                      Testez

                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                      72

                      LIST Function La requecircte

                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                      Comme les tabulations croiseacutees

                      ndash Mais en + simple

                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                      ndash En mono attribut (2004)

                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                      sous-formulaires

                      73

                      LIST Function

                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                      74

                      GROUP BY avec WHERE

                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                      75

                      GROUP BY

                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                      Pourquoi

                      76

                      GROUP BY avec HAVING

                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                      77

                      T-GROUP BY Proposeacute pour SQL

                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                      Le rocircle de -join par rapport agrave equi-join

                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                      INT(AVG(QTY)) AS QTY2FROM SP

                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                      78

                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                      FROM SP Vrai ou Faux

                      79

                      T-GROUP BY

                      Reacutesultat

                      part avg_qty_other_parts part_avg_qty

                      p1 250 300

                      p2 262 250

                      p3 245 400

                      p4 260 250

                      p5 260 250

                      p6 272 100

                      80

                      T-GROUP BY

                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                      81

                      Rangs Non-Denses(Non Dense Ranking)

                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                      s p qtyND-rank

                      s4 p5 400 1

                      s3 p2 400 1

                      s1 p3 400 1

                      s4 p4 300 4

                      s2 p2 300 4

                      s1 p1 300 4

                      s4 p2 200 7

                      s1 p4 200 7

                      s1 p2 200 7

                      s4 p1 200 7

                      s1 p6 100 11

                      s1 p5 100 11

                      82

                      Rangs Non-Denses(Graphique MsAccess)

                      s p qty ND-rank

                      s4 p5 400 1

                      s3 p2 400 1

                      s1 p3 400 1

                      s4 p4 300 4

                      s2 p2 300 4

                      s1 p1 300 4

                      s4 p2 200 7

                      s1 p4 200 7

                      s1 p2 200 7

                      s4 p1 200 7

                      s1 p6 100 11

                      s1 p5 100 11

                      83

                      Rangs Denses(Dense Ranking)

                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                      s p qtyD-rank

                      s1 p3 400 1

                      s3 p2 400 1

                      s4 p5 400 1

                      s1 p1 300 2

                      s2 p2 300 2

                      s4 p4 300 2

                      s1 p4 200 3

                      s1 p2 200 3

                      s4 p2 200 3

                      s4 p1 200 3

                      s1 p6 100 4

                      s1 p5 100 4

                      84

                      Rangs DensesGraphique MsAccess

                      s p qty D-rank

                      s1 p3 400 1

                      s3 p2 400 1

                      s4 p5 400 1

                      s1 p1 300 2

                      s2 p2 300 2

                      s4 p4 300 2

                      s1 p4 200 3

                      s1 p2 200 3

                      s4 p2 200 3

                      s4 p1 200 3

                      s1 p6 100 4

                      s1 p5 100 4

                      85

                      Distribution

                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                      86

                      Reacutesultat

                      s Distribution

                      s1 0419

                      s2 0097

                      s3 0129

                      s4 0355

                      87

                      Distribution Cumulative

                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                      FROM SP

                      ORDER BY SP[s]

                      88

                      Reacutesultat

                      sDistribution Cumuleacutee

                      s1 0419

                      s2 0516

                      s3 0645

                      s4 1

                      89

                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                      - Un outil - Fonction scalaire IIF de SQL Access

                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                      - On peut alternativement utiliser UNION ou UNION ALL

                      90

                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                      IIf([status]lt30OKgood) AS IIfSimple

                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                      FROM S

                      GROUP BY S[S] SSName SStatus SCity

                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                      s1 Smith Paris good good

                      s2 Jones 100 london good VGood

                      s3 Blake 30 Paris good good

                      s4 Clark 10 london OK OK

                      s5 Adams 30 Athens good good

                      bull Notez le traitement du null

                      91

                      Cateacutegorisation Emploi alternatif drsquoUNION

                      SELECT Ppname weight Very Heavy as Warning

                      FROM P where weight gt 13

                      union

                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                      UNION

                      select Ppname weight Light as warn from p where weight lt 10

                      ORDER BY warning DESC weight DESC

                      pname weight Warning

                      cam 19 Very Heavy

                      cog 19 Very Heavy

                      bolt 17 Very Heavy

                      nut 14 Very Heavy

                      screw 14 Very Heavy

                      nut 14 Quite Heavy

                      screw 14 Quite Heavy

                      screw 12 Quite Heavy

                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                      92

                      UNIONPreacutedictions de Valeurs Inconnues

                      On considegravere AVG(Qty1) pour Qty

                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                      SP

                      s p qtyQty1

                      s1 p1 300 400

                      s1 p2 200

                      s1 p3 400 600

                      s1 p4 200 300

                      s1 p5 100

                      s1 p6 100 200

                      s2 p2 300 500

                      s3 p2 400

                      s4 p1 200 100

                      s4 p2 200

                      s4 p4 300

                      s4 p5 400

                      93

                      UNIONPreacutediction de Valeurs Inconnues

                      On peut compleacuteter SP par UPDATE SPReacutesultat

                      SP

                      s p qtyQty1

                      s1 p1 300 400

                      s1 p2 200

                      s1 p3 400 600

                      s1 p4 200 300

                      s1 p5 100

                      s1 p6 100 200

                      s2 p2 300 500

                      s3 p2 400

                      s4 p1 200 100

                      s4 p2 200

                      s4 p4 300

                      s4 p5 400

                      qty for partpredicted or

                      unknown Qty1

                      100 p5

                      100 predicted value 200

                      200 p2

                      200 predicted value 200

                      300 p4

                      300 predicted value 450

                      400 p2

                      400 p5

                      400 predicted value 600

                      94

                      Tendance

                      qty Qty1

                      100 200

                      200 300

                      300 400

                      400 600

                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                      SP est supposeacute avec la DF entre Qty et Qty1

                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                      Graph 3D avec Qty en abscisses

                      95

                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                      30102008 120 27102008 4

                      25102008 131 22102008 4

                      23102008 127 20102008 4

                      17102008 269 14102008 4

                      15102008 60 12102008 4

                      11102008 295 08102008 4

                      09102008 340 06102008 4

                      08102008 324 05102008 4

                      06102008 315 03102008 4

                      96

                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                      Graphique avec une info-bulle

                      97

                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                      glissantes

                      bull CSUM (Cumulative (Running) Sums)

                      bull MAVG

                      bull MSUM

                      bull MDIFF

                      bull Voir Teradata + loin

                      98

                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                      99

                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                      Entiers est une table aux avec la colonne de12hellip10

                      100

                      Seacuteries financiegraveres

                      capital taux nval apregraves n ans

                      taux1val1 apregraves n ans

                      GainAbs GainRel

                      100 005 1 105 006 106 1 1

                      100 005 2 110 006 112 2 2

                      100 005 3 115 006 119 4 4

                      100 005 4 121 006 126 5 5

                      100 005 5 127 006 133 6 6

                      100 005 6 134 006 141 7 7

                      100 005 7 140 006 150 10 10

                      100 005 8 147 006 159 12 12

                      100 005 9 155 006 168 13 13

                      100 005 10 162 006 179 17 17

                      100 005 11 171 006 189 18 18

                      100 005 12 179 006 201 22 22

                      100 005 13 188 006 213 25 25

                      100 005 14 197 006 226 29 29

                      100 005 15 207 006 239 32 32

                      100 005 16 218 006 254 36 36

                      100 005 17 229 006 269 40 40

                      100 005 18 240 006 285 45 45

                      100 005 19 252 006 302 50 50

                      100 005 20 265 006 320 55 55

                      101

                      Seacuteries financiegraveres

                      102

                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                      financiers de la table Produits

                      bull Dans la limite L de la somme donneacutee

                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                      bull En ordre descendant de prix

                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                      bull Plusieurs actionshellip

                      103

                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                      P prix

                      p3 200

                      p1 200

                      p2 400

                      p3 200

                      p4 100

                      p6 100

                      p5 300

                      p8 300

                      p7 400

                      p10 200

                      p12 300

                      p13 300

                      104

                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                      ORDER BY 4 desc 8 123

                      105

                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                      106

                      Creacuteation drsquoun Portefeuille Discussion

                      Creacuteation drsquoun Portefeuille Discussion

                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                      107

                      Creacuteation drsquoun Portefeuille Discussion

                      Creacuteation drsquoun Portefeuille Discussion

                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                      108

                      ROLLUP(DB2 amp SQL-Server)

                      ROLLUP(DB2 amp SQL-Server)

                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                      109

                      CUBE(DB2 amp SQL-Server)

                      CUBE(DB2 amp SQL-Server)

                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                      110

                      GROUPING SETS

                      On indique explicitement les groupesndash entre ()

                      le groupe () est constitueacute de toute la table

                      SELECT p sum (qty) as tot-qty from SSP P

                      WHERE SP P = PP AND SP S = SS

                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                      HAVING tot-qty gt 100

                      Problegravemes avec des nuls que lrsquoon verra plus tard

                      111

                      Rollup Cube Grouping Setssous MsAccess

                      Il y en a pas On peut simuler ces manipulations en

                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                      Peut ecirctre laborieux pour le CUBE

                      112

                      ROLLUP

                      Remarquez le laquo null as cityraquo

                      113

                      ROLLUP

                      114

                      ROLLUP

                      Et le CUBE

                      Une solution pour l ambiguiumlteacute

                      de certains nuls

                      115

                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                      Wiley (publ)

                      116

                      Sous-Tables Parameacutetreacutees

                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                      117

                      Sous-Tables Parameacutetreacutees

                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                      118

                      Sous-Tables Parameacutetreacutees

                      119

                      Sous-Tables Parameacutetreacutees

                      120

                      Sous-Tables Parameacutetreacutees

                      121

                      Sous-Tables Parameacutetreacutees

                      122

                      Sous-Tables Parameacutetreacutees

                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                      123

                      Sous-Tables Parameacutetreacutees

                      Exeacutecution autonome

                      124

                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                      ecirctre choisi que dans une ville drsquoun client de Northwind

                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                      hellip

                      125

                      Liste de Choix Multibase

                      bull Requecircte Test-liste-de-choix mdb

                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                      126

                      Liste de Choix MultibaseReacutesultat

                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                      Tregraves bonne question agrave Microsoft

                      148

                      FIN

                      149

                      • SQL Avanceacute 2010
                      • Quoi amp Pourquoi
                      • Slide 3
                      • Synonymes
                      • Noms dattributs
                      • Slide 6
                      • Slide 7
                      • Slide 8
                      • Insertion dans une Vue
                      • Insertion dans une Vue (2)
                      • MAJ drsquoune Vue MsAccess
                      • MAJ drsquoune Vue MsAccess (2)
                      • Suppression dans une Vue MsAccess
                      • MsAccess Leacutegendes
                      • Expressions de valeur
                      • Expressions de valeur (2)
                      • Pour en savoir + sur les attributs dynamiques
                      • UNION et Noms Drsquoattributs
                      • UNION et ORDER BY
                      • ORDER BY et expressions de valeur
                      • ORDER BY et expressions de valeur (2)
                      • Ordre de prioriteacute dopeacuterations
                      • Preacutedicat TOP
                      • Preacutedicat TOP (2)
                      • Clause BETWEEN
                      • Limitations de NOT
                      • ANY et ALL
                      • Injection SQL
                      • Injection SQL (2)
                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                      • Tabulations Croiseacutees
                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                      • Tabulations Croiseacutees (2)
                      • Tabulations Croiseacutees (3)
                      • Tabulations Croiseacutees (4)
                      • Tabulations Croiseacutees (5)
                      • XOR
                      • IMP
                      • Sous-requecirctes
                      • Sous-requecirctes (2)
                      • Sous-requecirctes (3)
                      • Sous-requecirctes (4)
                      • Sous-requecirctes (5)
                      • Sous-requecirctes (6)
                      • Sous-requecirctes (7)
                      • Application aux Probabiliteacutes
                      • Clause FROM imbriqueacutee
                      • Clause FROM imbriqueacutee (2)
                      • Clause FROM imbriqueacutee (3)
                      • Clause FROM imbriqueacutee (4)
                      • Clause FROM imbriqueacutee (5)
                      • Clause FROM imbriqueacutee (6)
                      • Valeurs nulles
                      • Valeurs nulles (2)
                      • Valeurs nulles (3)
                      • Valeurs nulles (4)
                      • Fonctions Scalaires DateTemps
                      • Fonctions Scalaires DateTemps (2)
                      • Fonctions Scalaires DateTemps (3)
                      • Fonctions Scalaires DateTemps (4)
                      • Fonctions Scalaires DateTemps (5)
                      • Fonction Scalaire RND
                      • Fonction Scalaire RND (2)
                      • Fonctions Financiegraveres
                      • Fonctions Financiegraveres (2)
                      • Fonction DDB
                      • Fonction DDB (2)
                      • Fonction PMT
                      • Fonction PMT (2)
                      • Placement agrave taux variable
                      • GROUP BY
                      • LIST Function
                      • LIST Function (2)
                      • GROUP BY avec WHERE
                      • GROUP BY (2)
                      • GROUP BY avec HAVING
                      • T-GROUP BY
                      • T-GROUP BY (2)
                      • T-GROUP BY (3)
                      • T-GROUP BY (4)
                      • Rangs Non-Denses (Non Dense Ranking)
                      • Rangs Non-Denses (Graphique MsAccess)
                      • Rangs Denses (Dense Ranking)
                      • Rangs Denses Graphique MsAccess
                      • Distribution
                      • Reacutesultat
                      • Distribution Cumulative
                      • Reacutesultat (2)
                      • Cateacutegorisation
                      • Cateacutegorisation (2)
                      • Cateacutegorisation (3)
                      • UNION Preacutedictions de Valeurs Inconnues
                      • UNION Preacutediction de Valeurs Inconnues
                      • Tendance
                      • Moyenne Glissante
                      • Moyenne Glissante (2)
                      • Moyenne Glissante (3)
                      • Seacuteries financiegraveres
                      • Seacuteries financiegraveres (2)
                      • Seacuteries financiegraveres (3)
                      • Seacuteries financiegraveres (4)
                      • Creacuteation drsquoun Portefeuille
                      • Creacuteation drsquoun Portefeuille (2)
                      • Creacuteation drsquoun Portefeuille (3)
                      • Creacuteation drsquoun Portefeuille (4)
                      • Creacuteation drsquoun Portefeuille Discussion
                      • Creacuteation drsquoun Portefeuille Discussion (2)
                      • ROLLUP (DB2 amp SQL-Server)
                      • CUBE (DB2 amp SQL-Server)
                      • GROUPING SETS
                      • Rollup Cube Grouping Sets sous MsAccess
                      • Slide 112
                      • Slide 113
                      • Slide 114
                      • Autres Opeacuterations Utiles
                      • Sous-Tables Parameacutetreacutees
                      • Sous-Tables Parameacutetreacutees (2)
                      • Sous-Tables Parameacutetreacutees (3)
                      • Sous-Tables Parameacutetreacutees (4)
                      • Sous-Tables Parameacutetreacutees (5)
                      • Sous-Tables Parameacutetreacutees (6)
                      • Sous-Tables Parameacutetreacutees (7)
                      • Sous-Tables Parameacutetreacutees (8)
                      • Liste de Choix Multibase
                      • Liste de Choix Multibase (2)
                      • Liste de Choix Multibase Reacutesultat
                      • FIN
                      • Slide 149

                        12

                        MAJ drsquoune Vue MsAccess La MAJ drsquoun deacuteterminant dans une vue

                        QBE agrave jointure peut faire changer auto le deacutetermineacutendash MAJ de Cpostal MAJ Ville dans lrsquoexemple

                        avantndash On peut aussi MAJ Villendash Mais on ne peut pas MAJ Cpostal agrave une

                        valeur qui ne serait pas dans C A expeacuterimenter sur les vues preacuteceacutedentes

                        13

                        Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

                        vuendash Toute vue mono-table ou agrave un tuple de la vue

                        correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

                        Surprise ndash On insegravere un tuple dans une vue V agrave jointure

                        INSERT Vhellip

                        ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

                        14

                        MsAccess LeacutegendesMsAccess Leacutegendes

                        La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                        Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                        SP

                        s Product ID qty

                        s1 p1 300

                        s1 p2 200

                        s1 p3 400

                        s1 p4 200

                        s1 p5 100

                        s1 p6 100

                        s2 p1 300

                        hellip hellip hellip

                        15

                        Expressions de valeur Peuvent ecirctre des attr dynamiques

                        imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                        Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                        SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                        Une bonne question pour Microsoft

                        16

                        Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                        reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                        vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                        les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                        Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                        Il faut la clause Parameters a int b int

                        17

                        Pour en savoir + sur les attributs dynamiques

                        Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                        Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                        Voir le site du CERIA

                        18

                        UNION et Noms Drsquoattributs

                        SELECT [s] FROM S

                        Union

                        SELECT [p] FROM p

                        Quel nom drsquoattribut sera dans le reacutesultat

                        Sous MSAccess Dans SQL Server MySQL Oraclehellip

                        19

                        UNION et ORDER BY

                        SELECT [s] FROM S

                        Union

                        SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                        les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                        Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                        apregraves le 2egraveme SELECT

                        20

                        ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                        ORDER BY clauseORDER BY SAL - COMM

                        Exceptions UNION MINUS INTERSECT

                        Cette clause peut reacutefeacuterencer lattribut par position

                        Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                        Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                        MsAccess

                        21

                        ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                        une expression qui nest pas dans SELECT clauseSelect S CITY

                        FROM SORDER BY SNAME STATUS+50

                        exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                        Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                        Essayez

                        SELECT distinct sp[s]

                        FROM sp

                        ORDER BY spqty

                        22

                        Ordre de prioriteacute dopeacuterations

                        1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                        2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                        [e][e]

                        23

                        Preacutedicat TOP

                        SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                        SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                        SQL Server eacutequivalent de TOP drsquoAccess

                        SELECT TOP hellip WITH TIES

                        >

                        24

                        Preacutedicat TOP

                        Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                        La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                        Pour seacutelectionner les tuples 303132

                        LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                        Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                        >

                        25

                        Clause BETWEEN

                        Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                        geacuteneacuteriques ndash contrairement agrave LIKE

                        Quel sera le reacutesultat pour Jones et pourquoi

                        SELECT FROM S where sname between b and J

                        Et si on eacutecrit

                        SELECT FROM S where sname between J and b

                        ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                        26

                        Limitations de NOT

                        Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                        (SELECT CITY FROM S)

                        Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                        Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                        Hypothegravese de Monde ouvert

                        27

                        ANY et ALL

                        All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                        (SELECT STATUS FROM S WHERE SNAME = BNP)

                        si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                        si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                        Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                        (SELECT STATUS FROM S WHERE SNAME = BNP)

                        28

                        Injection SQL On ajoute en fraude agrave une requecircte a priori en

                        restriction une condition qui annule cette restriction

                        Gros deacutegacircts sur le WEB notammentSELECT

                        FROM S

                        WHERE city=london Or True

                        SQL Injection

                        S SName Status City

                        s1 smith Paris

                        s2 Jones 100 london

                        s3 Blake 30 Paris

                        s4 Clark 10 london

                        s5 Adams 30 Athens

                        29

                        Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                        True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                        SELECT

                        FROM S

                        WHERE status= 100 Or 200

                        SELECT

                        FROM S

                        WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                        SELECT

                        FROM S

                        WHERE city=london Or 100

                        30

                        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                        Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                        BY et les valeurs individuelles en mecircme temps

                        ndash Impossible avec SQL standard

                        31

                        S Total Qty p1 p2 p3 p4 p5 p6

                        s1 1300 300 200 400 200 100 100

                        s2 700 300 400

                        s3 200 200

                        s4 900 200 300 400

                        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                        Tabulations Croiseacutees

                        32

                        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                        Transforment les valeurs dattributs en attributsndash Par exemple

                        les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                        les valeurs de P1 P2 sont les QTY (par ex) correspondants

                        33

                        S Total Qty p1 p2 p3 p4 p5 p6

                        s1 1300 300 200 400 200 100 100

                        s2 700 300 400

                        s3 200 200

                        s4 900 200 300 400

                        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                        Tabulations Croiseacutees

                        34

                        TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                        Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                        Tabulations Croiseacutees

                        Nouvellescolonnes

                        35

                        La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                        On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                        Tabulations Croiseacutees

                        36

                        On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                        Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                        On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                        Mais cette clause naffecte pas les calculs des agreacutegats

                        Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                        Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                        Tabulations Croiseacutees

                        37

                        XORSELECT S[S] SStatus SCity

                        FROM S

                        WHERE Status=10 Xor city=paris

                        bull A noter le traitement du nul dans City

                        38

                        IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                        bull A noter le traitement du nul dans City

                        39

                        Sous-requecirctes

                        A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                        clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                        rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                        sous-requecircte

                        SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                        40

                        Sous-requecirctes

                        Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                        laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                        vite ou Livrerait au moins aussi vite mais en quantiteacute

                        plus grande

                        41

                        Sous-requecirctes

                        Skylinendash Tout objet non-domineacute (cacheacute

                        totalement) par un autre

                        SELECT X[s] X[p] qty delay

                        FROM SP X

                        where not exists

                        (select from SP as Y

                        where (Yqty gt= XQty and YDelay lt XDelay or

                        Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                        order by X[p]

                        42

                        Sous-requecirctes Reacutesultat

                        s p qty delay

                        s1 p1 300 15

                        s4 p1 200 13

                        s3 p2 400 15

                        s2 p2 300 12

                        s1 p3 400 17

                        s4 p4 300 11

                        s4 p5 400 7

                        s1 p6 100 8

                        s p qty Delay

                        s1 p1 300 15

                        s1 p2 200 12

                        s1 p3 400 17

                        s1 p4 200 11

                        s1 p5 100 7

                        s1 p6 100 8

                        s2 p2 300 12

                        s3 p2 400 15

                        s4 p1 200 13

                        s4 p2 200 15

                        s4 p4 300 11

                        s4 p5 400 7

                        S

                        43

                        Sous-requecirctes

                        On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                        SELECT Count() AS TotalQty

                        FROM (select distinct qty from sp)

                        On peut aussi avoir une sous-requecircte dans la clause SELECT

                        SELECT SP[s] SP[p] qty

                        (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                        round(qtyTotalQty 3) AS Fraction

                        FROM SP order by [s]

                        44

                        Sous-requecirctes

                        s p qty TotalQty Fraction

                        s1 p1 300 1300 0231

                        s1 p6 100 1300 0077

                        s1 p5 100 1300 0077

                        s1 p4 200 1300 0154

                        s1 p3 400 1300 0308

                        s1 p2 200 1300 0154

                        s2 p2 300 300 1

                        s3 p2 400 400 1

                        s4 p5 400 1100 0364

                        s4 p4 300 1100 0273

                        s4 p2 200 1100 0182

                        bull ReacutesultatSP

                        s p qty

                        s1 p1 300

                        s1 p2 200

                        s1 p3 400

                        s1 p4 200

                        s1 p5 100

                        s1 p6 100

                        s2 p2 300

                        s3 p2 400

                        s4 p1 200

                        s4 p2 200

                        s4 p4 300

                        s4 p5 400

                        45

                        Sous-requecirctesbull En Mode Graphique

                        s p qtyTotalQty

                        Fraction

                        s1 p1 300 1300 0231

                        s1 p6 100 1300 0077

                        s1 p5 100 1300 0077

                        s1 p4 200 1300 0154

                        s1 p3 400 1300 0308

                        s1 p2 200 1300 0154

                        s2 p2 300 300 1

                        s3 p2 400 400 1

                        s4 p5 400 1100 0364

                        s4 p4 300 1100 0273

                        s4 p2 200 1100 0182

                        46

                        Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                        SELECT (select count(qty) from SP

                        where qty gt= [seuil svp ]) count() as reacutesultat

                        FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                        probabiliteacute conditionnelle

                        47

                        Clause FROM imbriqueacutee

                        Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                        Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                        Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                        Agrave essayer

                        48

                        Clause FROM imbriqueacuteePossibiliteacutes

                        ndash Agreacutegations par-dessus UNION ou UNION ALL

                        ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                        MsAccess

                        ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                        Mais la reacutefeacuterence au nom de la requecircte OK

                        49

                        Clause FROM imbriqueacutee

                        SELECT sum(weight) AS [poids-total]

                        FROM (SELECT weight pcity FROM P WHERE City like l

                        UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                        50

                        Clause FROM imbriqueacutee

                        select avg(moy1) as [moyenne-des-moyennes]

                        FROM

                        (SELECT avg(weight) as moy1 FROM P WHERE City like l

                        UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                        51

                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                        select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                        52

                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                        totaux partiels et total geacuteneacuteral

                        total_Id TotalQty

                        s1 1300

                        s2 300

                        s3 400

                        s4 400

                        total Geacuteneacuteral

                        2400

                        53

                        Valeurs nulles

                        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                        Non WHERE HAVING GROUP BY (rel 1)

                        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                        MsAccess Oui DISTINCT Autres clauses

                        54

                        Valeurs nulles Si x est nul et y nrsquoest pas alors

                        1 x gt y est vrai ou faux

                        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                        SELECT FROM S WHERE CITY =Paris

                        UNION

                        SELECT FROM S WHERE NOT CITY = Paris

                        est toujours pourquoi faire simpleSELECT FROM S

                        si on peut faire compliqueacute

                        55

                        Valeurs nullesValeurs nulles

                        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                        56

                        Valeurs nulles

                        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                        LOG (nul) -gt Error A voir cas par cas

                        57

                        Fonctions Scalaires DateTemps

                        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                        58

                        Fonctions Scalaires DateTemps

                        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                        weekday(day(now())-1) AS [day]FROM S

                        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                        59

                        Fonctions Scalaires DateTemps

                        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                        Interval Explanation

                        Yyyy Year

                        q Quarter

                        m Month

                        y Day of year

                        d Day

                        w Weekday

                        ww Week

                        h Hour

                        n Minute

                        s Second

                        60

                        Fonctions Scalaires DateTemps

                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                        Test DateDiff

                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                        61

                        Fonctions Scalaires DateTemps

                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                        Liste tous les tuples ougrave DateV est de Janvier 2009

                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                        62

                        Fonction Scalaire RND

                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                        FROM SPORDER BY rnd(qty) DESC

                        echantillon s rank

                        s1 502628087997437E-02

                        s4 0518015921115875

                        s3 075702953338623

                        63

                        Fonction Scalaire RND

                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                        FROM SPORDER BY rnd(qty) DESC

                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                        Votre commentaire ici

                        64

                        Fonctions Financiegraveres

                        Fonction DDB Calcule lamortissement deacutegressif

                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                        65

                        Fonctions Financiegraveres

                        Fonction DDB Calcule lamortissement deacutegressif

                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                        66

                        Fonction DDB

                        insert into DDB (cost salvage life factor amortiss period)

                        select 100 as cost 70 as salvage 5 as life 1 as factor

                        DDB(cost salvage life period factor) as amortiss period

                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                        67

                        Fonction DDB

                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                        68

                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                        nombres neacutegatifs

                        Fonction PMT

                        69

                        Fonction PMT

                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                        Fonction PMT calcul dannuiteacute demprunt

                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                        preacutesentevaleur_payeacutee surprime

                        -16049 005 20 200000 -320980 -120980

                        70

                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                        Et les nuls que log ne supporte pas

                        Anneacutee relative

                        Taux

                        1 4

                        2 4

                        3 3

                        4 5

                        5 5

                        Voir + dans le livre laquo SQL Design Patterns raquo

                        71

                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                        est eacutequivalente agrave

                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                        WHERE XP = SPP) FROM SP

                        Testez

                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                        72

                        LIST Function La requecircte

                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                        Comme les tabulations croiseacutees

                        ndash Mais en + simple

                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                        ndash En mono attribut (2004)

                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                        sous-formulaires

                        73

                        LIST Function

                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                        74

                        GROUP BY avec WHERE

                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                        75

                        GROUP BY

                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                        Pourquoi

                        76

                        GROUP BY avec HAVING

                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                        77

                        T-GROUP BY Proposeacute pour SQL

                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                        Le rocircle de -join par rapport agrave equi-join

                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                        INT(AVG(QTY)) AS QTY2FROM SP

                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                        78

                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                        FROM SP Vrai ou Faux

                        79

                        T-GROUP BY

                        Reacutesultat

                        part avg_qty_other_parts part_avg_qty

                        p1 250 300

                        p2 262 250

                        p3 245 400

                        p4 260 250

                        p5 260 250

                        p6 272 100

                        80

                        T-GROUP BY

                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                        81

                        Rangs Non-Denses(Non Dense Ranking)

                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                        s p qtyND-rank

                        s4 p5 400 1

                        s3 p2 400 1

                        s1 p3 400 1

                        s4 p4 300 4

                        s2 p2 300 4

                        s1 p1 300 4

                        s4 p2 200 7

                        s1 p4 200 7

                        s1 p2 200 7

                        s4 p1 200 7

                        s1 p6 100 11

                        s1 p5 100 11

                        82

                        Rangs Non-Denses(Graphique MsAccess)

                        s p qty ND-rank

                        s4 p5 400 1

                        s3 p2 400 1

                        s1 p3 400 1

                        s4 p4 300 4

                        s2 p2 300 4

                        s1 p1 300 4

                        s4 p2 200 7

                        s1 p4 200 7

                        s1 p2 200 7

                        s4 p1 200 7

                        s1 p6 100 11

                        s1 p5 100 11

                        83

                        Rangs Denses(Dense Ranking)

                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                        s p qtyD-rank

                        s1 p3 400 1

                        s3 p2 400 1

                        s4 p5 400 1

                        s1 p1 300 2

                        s2 p2 300 2

                        s4 p4 300 2

                        s1 p4 200 3

                        s1 p2 200 3

                        s4 p2 200 3

                        s4 p1 200 3

                        s1 p6 100 4

                        s1 p5 100 4

                        84

                        Rangs DensesGraphique MsAccess

                        s p qty D-rank

                        s1 p3 400 1

                        s3 p2 400 1

                        s4 p5 400 1

                        s1 p1 300 2

                        s2 p2 300 2

                        s4 p4 300 2

                        s1 p4 200 3

                        s1 p2 200 3

                        s4 p2 200 3

                        s4 p1 200 3

                        s1 p6 100 4

                        s1 p5 100 4

                        85

                        Distribution

                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                        86

                        Reacutesultat

                        s Distribution

                        s1 0419

                        s2 0097

                        s3 0129

                        s4 0355

                        87

                        Distribution Cumulative

                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                        FROM SP

                        ORDER BY SP[s]

                        88

                        Reacutesultat

                        sDistribution Cumuleacutee

                        s1 0419

                        s2 0516

                        s3 0645

                        s4 1

                        89

                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                        - Un outil - Fonction scalaire IIF de SQL Access

                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                        - On peut alternativement utiliser UNION ou UNION ALL

                        90

                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                        IIf([status]lt30OKgood) AS IIfSimple

                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                        FROM S

                        GROUP BY S[S] SSName SStatus SCity

                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                        s1 Smith Paris good good

                        s2 Jones 100 london good VGood

                        s3 Blake 30 Paris good good

                        s4 Clark 10 london OK OK

                        s5 Adams 30 Athens good good

                        bull Notez le traitement du null

                        91

                        Cateacutegorisation Emploi alternatif drsquoUNION

                        SELECT Ppname weight Very Heavy as Warning

                        FROM P where weight gt 13

                        union

                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                        UNION

                        select Ppname weight Light as warn from p where weight lt 10

                        ORDER BY warning DESC weight DESC

                        pname weight Warning

                        cam 19 Very Heavy

                        cog 19 Very Heavy

                        bolt 17 Very Heavy

                        nut 14 Very Heavy

                        screw 14 Very Heavy

                        nut 14 Quite Heavy

                        screw 14 Quite Heavy

                        screw 12 Quite Heavy

                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                        92

                        UNIONPreacutedictions de Valeurs Inconnues

                        On considegravere AVG(Qty1) pour Qty

                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                        SP

                        s p qtyQty1

                        s1 p1 300 400

                        s1 p2 200

                        s1 p3 400 600

                        s1 p4 200 300

                        s1 p5 100

                        s1 p6 100 200

                        s2 p2 300 500

                        s3 p2 400

                        s4 p1 200 100

                        s4 p2 200

                        s4 p4 300

                        s4 p5 400

                        93

                        UNIONPreacutediction de Valeurs Inconnues

                        On peut compleacuteter SP par UPDATE SPReacutesultat

                        SP

                        s p qtyQty1

                        s1 p1 300 400

                        s1 p2 200

                        s1 p3 400 600

                        s1 p4 200 300

                        s1 p5 100

                        s1 p6 100 200

                        s2 p2 300 500

                        s3 p2 400

                        s4 p1 200 100

                        s4 p2 200

                        s4 p4 300

                        s4 p5 400

                        qty for partpredicted or

                        unknown Qty1

                        100 p5

                        100 predicted value 200

                        200 p2

                        200 predicted value 200

                        300 p4

                        300 predicted value 450

                        400 p2

                        400 p5

                        400 predicted value 600

                        94

                        Tendance

                        qty Qty1

                        100 200

                        200 300

                        300 400

                        400 600

                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                        SP est supposeacute avec la DF entre Qty et Qty1

                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                        Graph 3D avec Qty en abscisses

                        95

                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                        30102008 120 27102008 4

                        25102008 131 22102008 4

                        23102008 127 20102008 4

                        17102008 269 14102008 4

                        15102008 60 12102008 4

                        11102008 295 08102008 4

                        09102008 340 06102008 4

                        08102008 324 05102008 4

                        06102008 315 03102008 4

                        96

                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                        Graphique avec une info-bulle

                        97

                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                        glissantes

                        bull CSUM (Cumulative (Running) Sums)

                        bull MAVG

                        bull MSUM

                        bull MDIFF

                        bull Voir Teradata + loin

                        98

                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                        99

                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                        Entiers est une table aux avec la colonne de12hellip10

                        100

                        Seacuteries financiegraveres

                        capital taux nval apregraves n ans

                        taux1val1 apregraves n ans

                        GainAbs GainRel

                        100 005 1 105 006 106 1 1

                        100 005 2 110 006 112 2 2

                        100 005 3 115 006 119 4 4

                        100 005 4 121 006 126 5 5

                        100 005 5 127 006 133 6 6

                        100 005 6 134 006 141 7 7

                        100 005 7 140 006 150 10 10

                        100 005 8 147 006 159 12 12

                        100 005 9 155 006 168 13 13

                        100 005 10 162 006 179 17 17

                        100 005 11 171 006 189 18 18

                        100 005 12 179 006 201 22 22

                        100 005 13 188 006 213 25 25

                        100 005 14 197 006 226 29 29

                        100 005 15 207 006 239 32 32

                        100 005 16 218 006 254 36 36

                        100 005 17 229 006 269 40 40

                        100 005 18 240 006 285 45 45

                        100 005 19 252 006 302 50 50

                        100 005 20 265 006 320 55 55

                        101

                        Seacuteries financiegraveres

                        102

                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                        financiers de la table Produits

                        bull Dans la limite L de la somme donneacutee

                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                        bull En ordre descendant de prix

                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                        bull Plusieurs actionshellip

                        103

                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                        P prix

                        p3 200

                        p1 200

                        p2 400

                        p3 200

                        p4 100

                        p6 100

                        p5 300

                        p8 300

                        p7 400

                        p10 200

                        p12 300

                        p13 300

                        104

                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                        ORDER BY 4 desc 8 123

                        105

                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                        106

                        Creacuteation drsquoun Portefeuille Discussion

                        Creacuteation drsquoun Portefeuille Discussion

                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                        107

                        Creacuteation drsquoun Portefeuille Discussion

                        Creacuteation drsquoun Portefeuille Discussion

                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                        108

                        ROLLUP(DB2 amp SQL-Server)

                        ROLLUP(DB2 amp SQL-Server)

                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                        109

                        CUBE(DB2 amp SQL-Server)

                        CUBE(DB2 amp SQL-Server)

                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                        110

                        GROUPING SETS

                        On indique explicitement les groupesndash entre ()

                        le groupe () est constitueacute de toute la table

                        SELECT p sum (qty) as tot-qty from SSP P

                        WHERE SP P = PP AND SP S = SS

                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                        HAVING tot-qty gt 100

                        Problegravemes avec des nuls que lrsquoon verra plus tard

                        111

                        Rollup Cube Grouping Setssous MsAccess

                        Il y en a pas On peut simuler ces manipulations en

                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                        Peut ecirctre laborieux pour le CUBE

                        112

                        ROLLUP

                        Remarquez le laquo null as cityraquo

                        113

                        ROLLUP

                        114

                        ROLLUP

                        Et le CUBE

                        Une solution pour l ambiguiumlteacute

                        de certains nuls

                        115

                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                        Wiley (publ)

                        116

                        Sous-Tables Parameacutetreacutees

                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                        117

                        Sous-Tables Parameacutetreacutees

                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                        118

                        Sous-Tables Parameacutetreacutees

                        119

                        Sous-Tables Parameacutetreacutees

                        120

                        Sous-Tables Parameacutetreacutees

                        121

                        Sous-Tables Parameacutetreacutees

                        122

                        Sous-Tables Parameacutetreacutees

                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                        123

                        Sous-Tables Parameacutetreacutees

                        Exeacutecution autonome

                        124

                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                        ecirctre choisi que dans une ville drsquoun client de Northwind

                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                        hellip

                        125

                        Liste de Choix Multibase

                        bull Requecircte Test-liste-de-choix mdb

                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                        126

                        Liste de Choix MultibaseReacutesultat

                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                        Tregraves bonne question agrave Microsoft

                        148

                        FIN

                        149

                        • SQL Avanceacute 2010
                        • Quoi amp Pourquoi
                        • Slide 3
                        • Synonymes
                        • Noms dattributs
                        • Slide 6
                        • Slide 7
                        • Slide 8
                        • Insertion dans une Vue
                        • Insertion dans une Vue (2)
                        • MAJ drsquoune Vue MsAccess
                        • MAJ drsquoune Vue MsAccess (2)
                        • Suppression dans une Vue MsAccess
                        • MsAccess Leacutegendes
                        • Expressions de valeur
                        • Expressions de valeur (2)
                        • Pour en savoir + sur les attributs dynamiques
                        • UNION et Noms Drsquoattributs
                        • UNION et ORDER BY
                        • ORDER BY et expressions de valeur
                        • ORDER BY et expressions de valeur (2)
                        • Ordre de prioriteacute dopeacuterations
                        • Preacutedicat TOP
                        • Preacutedicat TOP (2)
                        • Clause BETWEEN
                        • Limitations de NOT
                        • ANY et ALL
                        • Injection SQL
                        • Injection SQL (2)
                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                        • Tabulations Croiseacutees
                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                        • Tabulations Croiseacutees (2)
                        • Tabulations Croiseacutees (3)
                        • Tabulations Croiseacutees (4)
                        • Tabulations Croiseacutees (5)
                        • XOR
                        • IMP
                        • Sous-requecirctes
                        • Sous-requecirctes (2)
                        • Sous-requecirctes (3)
                        • Sous-requecirctes (4)
                        • Sous-requecirctes (5)
                        • Sous-requecirctes (6)
                        • Sous-requecirctes (7)
                        • Application aux Probabiliteacutes
                        • Clause FROM imbriqueacutee
                        • Clause FROM imbriqueacutee (2)
                        • Clause FROM imbriqueacutee (3)
                        • Clause FROM imbriqueacutee (4)
                        • Clause FROM imbriqueacutee (5)
                        • Clause FROM imbriqueacutee (6)
                        • Valeurs nulles
                        • Valeurs nulles (2)
                        • Valeurs nulles (3)
                        • Valeurs nulles (4)
                        • Fonctions Scalaires DateTemps
                        • Fonctions Scalaires DateTemps (2)
                        • Fonctions Scalaires DateTemps (3)
                        • Fonctions Scalaires DateTemps (4)
                        • Fonctions Scalaires DateTemps (5)
                        • Fonction Scalaire RND
                        • Fonction Scalaire RND (2)
                        • Fonctions Financiegraveres
                        • Fonctions Financiegraveres (2)
                        • Fonction DDB
                        • Fonction DDB (2)
                        • Fonction PMT
                        • Fonction PMT (2)
                        • Placement agrave taux variable
                        • GROUP BY
                        • LIST Function
                        • LIST Function (2)
                        • GROUP BY avec WHERE
                        • GROUP BY (2)
                        • GROUP BY avec HAVING
                        • T-GROUP BY
                        • T-GROUP BY (2)
                        • T-GROUP BY (3)
                        • T-GROUP BY (4)
                        • Rangs Non-Denses (Non Dense Ranking)
                        • Rangs Non-Denses (Graphique MsAccess)
                        • Rangs Denses (Dense Ranking)
                        • Rangs Denses Graphique MsAccess
                        • Distribution
                        • Reacutesultat
                        • Distribution Cumulative
                        • Reacutesultat (2)
                        • Cateacutegorisation
                        • Cateacutegorisation (2)
                        • Cateacutegorisation (3)
                        • UNION Preacutedictions de Valeurs Inconnues
                        • UNION Preacutediction de Valeurs Inconnues
                        • Tendance
                        • Moyenne Glissante
                        • Moyenne Glissante (2)
                        • Moyenne Glissante (3)
                        • Seacuteries financiegraveres
                        • Seacuteries financiegraveres (2)
                        • Seacuteries financiegraveres (3)
                        • Seacuteries financiegraveres (4)
                        • Creacuteation drsquoun Portefeuille
                        • Creacuteation drsquoun Portefeuille (2)
                        • Creacuteation drsquoun Portefeuille (3)
                        • Creacuteation drsquoun Portefeuille (4)
                        • Creacuteation drsquoun Portefeuille Discussion
                        • Creacuteation drsquoun Portefeuille Discussion (2)
                        • ROLLUP (DB2 amp SQL-Server)
                        • CUBE (DB2 amp SQL-Server)
                        • GROUPING SETS
                        • Rollup Cube Grouping Sets sous MsAccess
                        • Slide 112
                        • Slide 113
                        • Slide 114
                        • Autres Opeacuterations Utiles
                        • Sous-Tables Parameacutetreacutees
                        • Sous-Tables Parameacutetreacutees (2)
                        • Sous-Tables Parameacutetreacutees (3)
                        • Sous-Tables Parameacutetreacutees (4)
                        • Sous-Tables Parameacutetreacutees (5)
                        • Sous-Tables Parameacutetreacutees (6)
                        • Sous-Tables Parameacutetreacutees (7)
                        • Sous-Tables Parameacutetreacutees (8)
                        • Liste de Choix Multibase
                        • Liste de Choix Multibase (2)
                        • Liste de Choix Multibase Reacutesultat
                        • FIN
                        • Slide 149

                          13

                          Suppression dans une Vue MsAccess On peut supprimer des tuples dans une

                          vuendash Toute vue mono-table ou agrave un tuple de la vue

                          correspond un tuple de la table Pas de DISTINCT GROUP BYhellip

                          Surprise ndash On insegravere un tuple dans une vue V agrave jointure

                          INSERT Vhellip

                          ndash DELETE V hellip ne peut pas le supprimer A expeacuterimenter idem

                          14

                          MsAccess LeacutegendesMsAccess Leacutegendes

                          La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                          Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                          SP

                          s Product ID qty

                          s1 p1 300

                          s1 p2 200

                          s1 p3 400

                          s1 p4 200

                          s1 p5 100

                          s1 p6 100

                          s2 p1 300

                          hellip hellip hellip

                          15

                          Expressions de valeur Peuvent ecirctre des attr dynamiques

                          imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                          Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                          SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                          Une bonne question pour Microsoft

                          16

                          Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                          reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                          vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                          les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                          Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                          Il faut la clause Parameters a int b int

                          17

                          Pour en savoir + sur les attributs dynamiques

                          Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                          Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                          Voir le site du CERIA

                          18

                          UNION et Noms Drsquoattributs

                          SELECT [s] FROM S

                          Union

                          SELECT [p] FROM p

                          Quel nom drsquoattribut sera dans le reacutesultat

                          Sous MSAccess Dans SQL Server MySQL Oraclehellip

                          19

                          UNION et ORDER BY

                          SELECT [s] FROM S

                          Union

                          SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                          les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                          Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                          apregraves le 2egraveme SELECT

                          20

                          ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                          ORDER BY clauseORDER BY SAL - COMM

                          Exceptions UNION MINUS INTERSECT

                          Cette clause peut reacutefeacuterencer lattribut par position

                          Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                          Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                          MsAccess

                          21

                          ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                          une expression qui nest pas dans SELECT clauseSelect S CITY

                          FROM SORDER BY SNAME STATUS+50

                          exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                          Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                          Essayez

                          SELECT distinct sp[s]

                          FROM sp

                          ORDER BY spqty

                          22

                          Ordre de prioriteacute dopeacuterations

                          1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                          2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                          [e][e]

                          23

                          Preacutedicat TOP

                          SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                          SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                          SQL Server eacutequivalent de TOP drsquoAccess

                          SELECT TOP hellip WITH TIES

                          >

                          24

                          Preacutedicat TOP

                          Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                          La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                          Pour seacutelectionner les tuples 303132

                          LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                          Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                          >

                          25

                          Clause BETWEEN

                          Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                          geacuteneacuteriques ndash contrairement agrave LIKE

                          Quel sera le reacutesultat pour Jones et pourquoi

                          SELECT FROM S where sname between b and J

                          Et si on eacutecrit

                          SELECT FROM S where sname between J and b

                          ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                          26

                          Limitations de NOT

                          Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                          (SELECT CITY FROM S)

                          Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                          Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                          Hypothegravese de Monde ouvert

                          27

                          ANY et ALL

                          All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                          (SELECT STATUS FROM S WHERE SNAME = BNP)

                          si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                          si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                          Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                          (SELECT STATUS FROM S WHERE SNAME = BNP)

                          28

                          Injection SQL On ajoute en fraude agrave une requecircte a priori en

                          restriction une condition qui annule cette restriction

                          Gros deacutegacircts sur le WEB notammentSELECT

                          FROM S

                          WHERE city=london Or True

                          SQL Injection

                          S SName Status City

                          s1 smith Paris

                          s2 Jones 100 london

                          s3 Blake 30 Paris

                          s4 Clark 10 london

                          s5 Adams 30 Athens

                          29

                          Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                          True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                          SELECT

                          FROM S

                          WHERE status= 100 Or 200

                          SELECT

                          FROM S

                          WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                          SELECT

                          FROM S

                          WHERE city=london Or 100

                          30

                          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                          Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                          BY et les valeurs individuelles en mecircme temps

                          ndash Impossible avec SQL standard

                          31

                          S Total Qty p1 p2 p3 p4 p5 p6

                          s1 1300 300 200 400 200 100 100

                          s2 700 300 400

                          s3 200 200

                          s4 900 200 300 400

                          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                          Tabulations Croiseacutees

                          32

                          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                          Transforment les valeurs dattributs en attributsndash Par exemple

                          les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                          les valeurs de P1 P2 sont les QTY (par ex) correspondants

                          33

                          S Total Qty p1 p2 p3 p4 p5 p6

                          s1 1300 300 200 400 200 100 100

                          s2 700 300 400

                          s3 200 200

                          s4 900 200 300 400

                          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                          Tabulations Croiseacutees

                          34

                          TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                          Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                          Tabulations Croiseacutees

                          Nouvellescolonnes

                          35

                          La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                          On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                          Tabulations Croiseacutees

                          36

                          On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                          Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                          On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                          Mais cette clause naffecte pas les calculs des agreacutegats

                          Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                          Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                          Tabulations Croiseacutees

                          37

                          XORSELECT S[S] SStatus SCity

                          FROM S

                          WHERE Status=10 Xor city=paris

                          bull A noter le traitement du nul dans City

                          38

                          IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                          bull A noter le traitement du nul dans City

                          39

                          Sous-requecirctes

                          A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                          clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                          rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                          sous-requecircte

                          SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                          40

                          Sous-requecirctes

                          Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                          laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                          vite ou Livrerait au moins aussi vite mais en quantiteacute

                          plus grande

                          41

                          Sous-requecirctes

                          Skylinendash Tout objet non-domineacute (cacheacute

                          totalement) par un autre

                          SELECT X[s] X[p] qty delay

                          FROM SP X

                          where not exists

                          (select from SP as Y

                          where (Yqty gt= XQty and YDelay lt XDelay or

                          Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                          order by X[p]

                          42

                          Sous-requecirctes Reacutesultat

                          s p qty delay

                          s1 p1 300 15

                          s4 p1 200 13

                          s3 p2 400 15

                          s2 p2 300 12

                          s1 p3 400 17

                          s4 p4 300 11

                          s4 p5 400 7

                          s1 p6 100 8

                          s p qty Delay

                          s1 p1 300 15

                          s1 p2 200 12

                          s1 p3 400 17

                          s1 p4 200 11

                          s1 p5 100 7

                          s1 p6 100 8

                          s2 p2 300 12

                          s3 p2 400 15

                          s4 p1 200 13

                          s4 p2 200 15

                          s4 p4 300 11

                          s4 p5 400 7

                          S

                          43

                          Sous-requecirctes

                          On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                          SELECT Count() AS TotalQty

                          FROM (select distinct qty from sp)

                          On peut aussi avoir une sous-requecircte dans la clause SELECT

                          SELECT SP[s] SP[p] qty

                          (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                          round(qtyTotalQty 3) AS Fraction

                          FROM SP order by [s]

                          44

                          Sous-requecirctes

                          s p qty TotalQty Fraction

                          s1 p1 300 1300 0231

                          s1 p6 100 1300 0077

                          s1 p5 100 1300 0077

                          s1 p4 200 1300 0154

                          s1 p3 400 1300 0308

                          s1 p2 200 1300 0154

                          s2 p2 300 300 1

                          s3 p2 400 400 1

                          s4 p5 400 1100 0364

                          s4 p4 300 1100 0273

                          s4 p2 200 1100 0182

                          bull ReacutesultatSP

                          s p qty

                          s1 p1 300

                          s1 p2 200

                          s1 p3 400

                          s1 p4 200

                          s1 p5 100

                          s1 p6 100

                          s2 p2 300

                          s3 p2 400

                          s4 p1 200

                          s4 p2 200

                          s4 p4 300

                          s4 p5 400

                          45

                          Sous-requecirctesbull En Mode Graphique

                          s p qtyTotalQty

                          Fraction

                          s1 p1 300 1300 0231

                          s1 p6 100 1300 0077

                          s1 p5 100 1300 0077

                          s1 p4 200 1300 0154

                          s1 p3 400 1300 0308

                          s1 p2 200 1300 0154

                          s2 p2 300 300 1

                          s3 p2 400 400 1

                          s4 p5 400 1100 0364

                          s4 p4 300 1100 0273

                          s4 p2 200 1100 0182

                          46

                          Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                          SELECT (select count(qty) from SP

                          where qty gt= [seuil svp ]) count() as reacutesultat

                          FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                          probabiliteacute conditionnelle

                          47

                          Clause FROM imbriqueacutee

                          Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                          Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                          Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                          Agrave essayer

                          48

                          Clause FROM imbriqueacuteePossibiliteacutes

                          ndash Agreacutegations par-dessus UNION ou UNION ALL

                          ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                          MsAccess

                          ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                          Mais la reacutefeacuterence au nom de la requecircte OK

                          49

                          Clause FROM imbriqueacutee

                          SELECT sum(weight) AS [poids-total]

                          FROM (SELECT weight pcity FROM P WHERE City like l

                          UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                          50

                          Clause FROM imbriqueacutee

                          select avg(moy1) as [moyenne-des-moyennes]

                          FROM

                          (SELECT avg(weight) as moy1 FROM P WHERE City like l

                          UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                          51

                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                          select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                          52

                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                          totaux partiels et total geacuteneacuteral

                          total_Id TotalQty

                          s1 1300

                          s2 300

                          s3 400

                          s4 400

                          total Geacuteneacuteral

                          2400

                          53

                          Valeurs nulles

                          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                          Non WHERE HAVING GROUP BY (rel 1)

                          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                          MsAccess Oui DISTINCT Autres clauses

                          54

                          Valeurs nulles Si x est nul et y nrsquoest pas alors

                          1 x gt y est vrai ou faux

                          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                          SELECT FROM S WHERE CITY =Paris

                          UNION

                          SELECT FROM S WHERE NOT CITY = Paris

                          est toujours pourquoi faire simpleSELECT FROM S

                          si on peut faire compliqueacute

                          55

                          Valeurs nullesValeurs nulles

                          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                          56

                          Valeurs nulles

                          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                          LOG (nul) -gt Error A voir cas par cas

                          57

                          Fonctions Scalaires DateTemps

                          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                          58

                          Fonctions Scalaires DateTemps

                          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                          weekday(day(now())-1) AS [day]FROM S

                          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                          59

                          Fonctions Scalaires DateTemps

                          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                          Interval Explanation

                          Yyyy Year

                          q Quarter

                          m Month

                          y Day of year

                          d Day

                          w Weekday

                          ww Week

                          h Hour

                          n Minute

                          s Second

                          60

                          Fonctions Scalaires DateTemps

                          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                          Test DateDiff

                          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                          61

                          Fonctions Scalaires DateTemps

                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                          Liste tous les tuples ougrave DateV est de Janvier 2009

                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                          62

                          Fonction Scalaire RND

                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                          FROM SPORDER BY rnd(qty) DESC

                          echantillon s rank

                          s1 502628087997437E-02

                          s4 0518015921115875

                          s3 075702953338623

                          63

                          Fonction Scalaire RND

                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                          FROM SPORDER BY rnd(qty) DESC

                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                          Votre commentaire ici

                          64

                          Fonctions Financiegraveres

                          Fonction DDB Calcule lamortissement deacutegressif

                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                          65

                          Fonctions Financiegraveres

                          Fonction DDB Calcule lamortissement deacutegressif

                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                          66

                          Fonction DDB

                          insert into DDB (cost salvage life factor amortiss period)

                          select 100 as cost 70 as salvage 5 as life 1 as factor

                          DDB(cost salvage life period factor) as amortiss period

                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                          67

                          Fonction DDB

                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                          68

                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                          nombres neacutegatifs

                          Fonction PMT

                          69

                          Fonction PMT

                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                          Fonction PMT calcul dannuiteacute demprunt

                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                          preacutesentevaleur_payeacutee surprime

                          -16049 005 20 200000 -320980 -120980

                          70

                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                          Et les nuls que log ne supporte pas

                          Anneacutee relative

                          Taux

                          1 4

                          2 4

                          3 3

                          4 5

                          5 5

                          Voir + dans le livre laquo SQL Design Patterns raquo

                          71

                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                          est eacutequivalente agrave

                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                          WHERE XP = SPP) FROM SP

                          Testez

                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                          72

                          LIST Function La requecircte

                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                          Comme les tabulations croiseacutees

                          ndash Mais en + simple

                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                          ndash En mono attribut (2004)

                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                          sous-formulaires

                          73

                          LIST Function

                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                          74

                          GROUP BY avec WHERE

                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                          75

                          GROUP BY

                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                          Pourquoi

                          76

                          GROUP BY avec HAVING

                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                          77

                          T-GROUP BY Proposeacute pour SQL

                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                          Le rocircle de -join par rapport agrave equi-join

                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                          INT(AVG(QTY)) AS QTY2FROM SP

                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                          78

                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                          FROM SP Vrai ou Faux

                          79

                          T-GROUP BY

                          Reacutesultat

                          part avg_qty_other_parts part_avg_qty

                          p1 250 300

                          p2 262 250

                          p3 245 400

                          p4 260 250

                          p5 260 250

                          p6 272 100

                          80

                          T-GROUP BY

                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                          81

                          Rangs Non-Denses(Non Dense Ranking)

                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                          s p qtyND-rank

                          s4 p5 400 1

                          s3 p2 400 1

                          s1 p3 400 1

                          s4 p4 300 4

                          s2 p2 300 4

                          s1 p1 300 4

                          s4 p2 200 7

                          s1 p4 200 7

                          s1 p2 200 7

                          s4 p1 200 7

                          s1 p6 100 11

                          s1 p5 100 11

                          82

                          Rangs Non-Denses(Graphique MsAccess)

                          s p qty ND-rank

                          s4 p5 400 1

                          s3 p2 400 1

                          s1 p3 400 1

                          s4 p4 300 4

                          s2 p2 300 4

                          s1 p1 300 4

                          s4 p2 200 7

                          s1 p4 200 7

                          s1 p2 200 7

                          s4 p1 200 7

                          s1 p6 100 11

                          s1 p5 100 11

                          83

                          Rangs Denses(Dense Ranking)

                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                          s p qtyD-rank

                          s1 p3 400 1

                          s3 p2 400 1

                          s4 p5 400 1

                          s1 p1 300 2

                          s2 p2 300 2

                          s4 p4 300 2

                          s1 p4 200 3

                          s1 p2 200 3

                          s4 p2 200 3

                          s4 p1 200 3

                          s1 p6 100 4

                          s1 p5 100 4

                          84

                          Rangs DensesGraphique MsAccess

                          s p qty D-rank

                          s1 p3 400 1

                          s3 p2 400 1

                          s4 p5 400 1

                          s1 p1 300 2

                          s2 p2 300 2

                          s4 p4 300 2

                          s1 p4 200 3

                          s1 p2 200 3

                          s4 p2 200 3

                          s4 p1 200 3

                          s1 p6 100 4

                          s1 p5 100 4

                          85

                          Distribution

                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                          86

                          Reacutesultat

                          s Distribution

                          s1 0419

                          s2 0097

                          s3 0129

                          s4 0355

                          87

                          Distribution Cumulative

                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                          FROM SP

                          ORDER BY SP[s]

                          88

                          Reacutesultat

                          sDistribution Cumuleacutee

                          s1 0419

                          s2 0516

                          s3 0645

                          s4 1

                          89

                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                          - Un outil - Fonction scalaire IIF de SQL Access

                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                          - On peut alternativement utiliser UNION ou UNION ALL

                          90

                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                          IIf([status]lt30OKgood) AS IIfSimple

                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                          FROM S

                          GROUP BY S[S] SSName SStatus SCity

                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                          s1 Smith Paris good good

                          s2 Jones 100 london good VGood

                          s3 Blake 30 Paris good good

                          s4 Clark 10 london OK OK

                          s5 Adams 30 Athens good good

                          bull Notez le traitement du null

                          91

                          Cateacutegorisation Emploi alternatif drsquoUNION

                          SELECT Ppname weight Very Heavy as Warning

                          FROM P where weight gt 13

                          union

                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                          UNION

                          select Ppname weight Light as warn from p where weight lt 10

                          ORDER BY warning DESC weight DESC

                          pname weight Warning

                          cam 19 Very Heavy

                          cog 19 Very Heavy

                          bolt 17 Very Heavy

                          nut 14 Very Heavy

                          screw 14 Very Heavy

                          nut 14 Quite Heavy

                          screw 14 Quite Heavy

                          screw 12 Quite Heavy

                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                          92

                          UNIONPreacutedictions de Valeurs Inconnues

                          On considegravere AVG(Qty1) pour Qty

                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                          SP

                          s p qtyQty1

                          s1 p1 300 400

                          s1 p2 200

                          s1 p3 400 600

                          s1 p4 200 300

                          s1 p5 100

                          s1 p6 100 200

                          s2 p2 300 500

                          s3 p2 400

                          s4 p1 200 100

                          s4 p2 200

                          s4 p4 300

                          s4 p5 400

                          93

                          UNIONPreacutediction de Valeurs Inconnues

                          On peut compleacuteter SP par UPDATE SPReacutesultat

                          SP

                          s p qtyQty1

                          s1 p1 300 400

                          s1 p2 200

                          s1 p3 400 600

                          s1 p4 200 300

                          s1 p5 100

                          s1 p6 100 200

                          s2 p2 300 500

                          s3 p2 400

                          s4 p1 200 100

                          s4 p2 200

                          s4 p4 300

                          s4 p5 400

                          qty for partpredicted or

                          unknown Qty1

                          100 p5

                          100 predicted value 200

                          200 p2

                          200 predicted value 200

                          300 p4

                          300 predicted value 450

                          400 p2

                          400 p5

                          400 predicted value 600

                          94

                          Tendance

                          qty Qty1

                          100 200

                          200 300

                          300 400

                          400 600

                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                          SP est supposeacute avec la DF entre Qty et Qty1

                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                          Graph 3D avec Qty en abscisses

                          95

                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                          30102008 120 27102008 4

                          25102008 131 22102008 4

                          23102008 127 20102008 4

                          17102008 269 14102008 4

                          15102008 60 12102008 4

                          11102008 295 08102008 4

                          09102008 340 06102008 4

                          08102008 324 05102008 4

                          06102008 315 03102008 4

                          96

                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                          Graphique avec une info-bulle

                          97

                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                          glissantes

                          bull CSUM (Cumulative (Running) Sums)

                          bull MAVG

                          bull MSUM

                          bull MDIFF

                          bull Voir Teradata + loin

                          98

                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                          99

                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                          Entiers est une table aux avec la colonne de12hellip10

                          100

                          Seacuteries financiegraveres

                          capital taux nval apregraves n ans

                          taux1val1 apregraves n ans

                          GainAbs GainRel

                          100 005 1 105 006 106 1 1

                          100 005 2 110 006 112 2 2

                          100 005 3 115 006 119 4 4

                          100 005 4 121 006 126 5 5

                          100 005 5 127 006 133 6 6

                          100 005 6 134 006 141 7 7

                          100 005 7 140 006 150 10 10

                          100 005 8 147 006 159 12 12

                          100 005 9 155 006 168 13 13

                          100 005 10 162 006 179 17 17

                          100 005 11 171 006 189 18 18

                          100 005 12 179 006 201 22 22

                          100 005 13 188 006 213 25 25

                          100 005 14 197 006 226 29 29

                          100 005 15 207 006 239 32 32

                          100 005 16 218 006 254 36 36

                          100 005 17 229 006 269 40 40

                          100 005 18 240 006 285 45 45

                          100 005 19 252 006 302 50 50

                          100 005 20 265 006 320 55 55

                          101

                          Seacuteries financiegraveres

                          102

                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                          financiers de la table Produits

                          bull Dans la limite L de la somme donneacutee

                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                          bull En ordre descendant de prix

                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                          bull Plusieurs actionshellip

                          103

                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                          P prix

                          p3 200

                          p1 200

                          p2 400

                          p3 200

                          p4 100

                          p6 100

                          p5 300

                          p8 300

                          p7 400

                          p10 200

                          p12 300

                          p13 300

                          104

                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                          ORDER BY 4 desc 8 123

                          105

                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                          106

                          Creacuteation drsquoun Portefeuille Discussion

                          Creacuteation drsquoun Portefeuille Discussion

                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                          107

                          Creacuteation drsquoun Portefeuille Discussion

                          Creacuteation drsquoun Portefeuille Discussion

                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                          108

                          ROLLUP(DB2 amp SQL-Server)

                          ROLLUP(DB2 amp SQL-Server)

                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                          109

                          CUBE(DB2 amp SQL-Server)

                          CUBE(DB2 amp SQL-Server)

                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                          110

                          GROUPING SETS

                          On indique explicitement les groupesndash entre ()

                          le groupe () est constitueacute de toute la table

                          SELECT p sum (qty) as tot-qty from SSP P

                          WHERE SP P = PP AND SP S = SS

                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                          HAVING tot-qty gt 100

                          Problegravemes avec des nuls que lrsquoon verra plus tard

                          111

                          Rollup Cube Grouping Setssous MsAccess

                          Il y en a pas On peut simuler ces manipulations en

                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                          Peut ecirctre laborieux pour le CUBE

                          112

                          ROLLUP

                          Remarquez le laquo null as cityraquo

                          113

                          ROLLUP

                          114

                          ROLLUP

                          Et le CUBE

                          Une solution pour l ambiguiumlteacute

                          de certains nuls

                          115

                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                          Wiley (publ)

                          116

                          Sous-Tables Parameacutetreacutees

                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                          117

                          Sous-Tables Parameacutetreacutees

                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                          118

                          Sous-Tables Parameacutetreacutees

                          119

                          Sous-Tables Parameacutetreacutees

                          120

                          Sous-Tables Parameacutetreacutees

                          121

                          Sous-Tables Parameacutetreacutees

                          122

                          Sous-Tables Parameacutetreacutees

                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                          123

                          Sous-Tables Parameacutetreacutees

                          Exeacutecution autonome

                          124

                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                          ecirctre choisi que dans une ville drsquoun client de Northwind

                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                          hellip

                          125

                          Liste de Choix Multibase

                          bull Requecircte Test-liste-de-choix mdb

                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                          126

                          Liste de Choix MultibaseReacutesultat

                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                          Tregraves bonne question agrave Microsoft

                          148

                          FIN

                          149

                          • SQL Avanceacute 2010
                          • Quoi amp Pourquoi
                          • Slide 3
                          • Synonymes
                          • Noms dattributs
                          • Slide 6
                          • Slide 7
                          • Slide 8
                          • Insertion dans une Vue
                          • Insertion dans une Vue (2)
                          • MAJ drsquoune Vue MsAccess
                          • MAJ drsquoune Vue MsAccess (2)
                          • Suppression dans une Vue MsAccess
                          • MsAccess Leacutegendes
                          • Expressions de valeur
                          • Expressions de valeur (2)
                          • Pour en savoir + sur les attributs dynamiques
                          • UNION et Noms Drsquoattributs
                          • UNION et ORDER BY
                          • ORDER BY et expressions de valeur
                          • ORDER BY et expressions de valeur (2)
                          • Ordre de prioriteacute dopeacuterations
                          • Preacutedicat TOP
                          • Preacutedicat TOP (2)
                          • Clause BETWEEN
                          • Limitations de NOT
                          • ANY et ALL
                          • Injection SQL
                          • Injection SQL (2)
                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                          • Tabulations Croiseacutees
                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                          • Tabulations Croiseacutees (2)
                          • Tabulations Croiseacutees (3)
                          • Tabulations Croiseacutees (4)
                          • Tabulations Croiseacutees (5)
                          • XOR
                          • IMP
                          • Sous-requecirctes
                          • Sous-requecirctes (2)
                          • Sous-requecirctes (3)
                          • Sous-requecirctes (4)
                          • Sous-requecirctes (5)
                          • Sous-requecirctes (6)
                          • Sous-requecirctes (7)
                          • Application aux Probabiliteacutes
                          • Clause FROM imbriqueacutee
                          • Clause FROM imbriqueacutee (2)
                          • Clause FROM imbriqueacutee (3)
                          • Clause FROM imbriqueacutee (4)
                          • Clause FROM imbriqueacutee (5)
                          • Clause FROM imbriqueacutee (6)
                          • Valeurs nulles
                          • Valeurs nulles (2)
                          • Valeurs nulles (3)
                          • Valeurs nulles (4)
                          • Fonctions Scalaires DateTemps
                          • Fonctions Scalaires DateTemps (2)
                          • Fonctions Scalaires DateTemps (3)
                          • Fonctions Scalaires DateTemps (4)
                          • Fonctions Scalaires DateTemps (5)
                          • Fonction Scalaire RND
                          • Fonction Scalaire RND (2)
                          • Fonctions Financiegraveres
                          • Fonctions Financiegraveres (2)
                          • Fonction DDB
                          • Fonction DDB (2)
                          • Fonction PMT
                          • Fonction PMT (2)
                          • Placement agrave taux variable
                          • GROUP BY
                          • LIST Function
                          • LIST Function (2)
                          • GROUP BY avec WHERE
                          • GROUP BY (2)
                          • GROUP BY avec HAVING
                          • T-GROUP BY
                          • T-GROUP BY (2)
                          • T-GROUP BY (3)
                          • T-GROUP BY (4)
                          • Rangs Non-Denses (Non Dense Ranking)
                          • Rangs Non-Denses (Graphique MsAccess)
                          • Rangs Denses (Dense Ranking)
                          • Rangs Denses Graphique MsAccess
                          • Distribution
                          • Reacutesultat
                          • Distribution Cumulative
                          • Reacutesultat (2)
                          • Cateacutegorisation
                          • Cateacutegorisation (2)
                          • Cateacutegorisation (3)
                          • UNION Preacutedictions de Valeurs Inconnues
                          • UNION Preacutediction de Valeurs Inconnues
                          • Tendance
                          • Moyenne Glissante
                          • Moyenne Glissante (2)
                          • Moyenne Glissante (3)
                          • Seacuteries financiegraveres
                          • Seacuteries financiegraveres (2)
                          • Seacuteries financiegraveres (3)
                          • Seacuteries financiegraveres (4)
                          • Creacuteation drsquoun Portefeuille
                          • Creacuteation drsquoun Portefeuille (2)
                          • Creacuteation drsquoun Portefeuille (3)
                          • Creacuteation drsquoun Portefeuille (4)
                          • Creacuteation drsquoun Portefeuille Discussion
                          • Creacuteation drsquoun Portefeuille Discussion (2)
                          • ROLLUP (DB2 amp SQL-Server)
                          • CUBE (DB2 amp SQL-Server)
                          • GROUPING SETS
                          • Rollup Cube Grouping Sets sous MsAccess
                          • Slide 112
                          • Slide 113
                          • Slide 114
                          • Autres Opeacuterations Utiles
                          • Sous-Tables Parameacutetreacutees
                          • Sous-Tables Parameacutetreacutees (2)
                          • Sous-Tables Parameacutetreacutees (3)
                          • Sous-Tables Parameacutetreacutees (4)
                          • Sous-Tables Parameacutetreacutees (5)
                          • Sous-Tables Parameacutetreacutees (6)
                          • Sous-Tables Parameacutetreacutees (7)
                          • Sous-Tables Parameacutetreacutees (8)
                          • Liste de Choix Multibase
                          • Liste de Choix Multibase (2)
                          • Liste de Choix Multibase Reacutesultat
                          • FIN
                          • Slide 149

                            14

                            MsAccess LeacutegendesMsAccess Leacutegendes

                            La leacutegende a la prioriteacute sur lrsquoalias Si la leacutegende de P dans SP de notre base S-P est

                            Product Idndash Alors lrsquoalias Produit est inopeacuterantSELECT SP[s] SP[p] AS Produit SPqty FROM

                            SP

                            s Product ID qty

                            s1 p1 300

                            s1 p2 200

                            s1 p3 400

                            s1 p4 200

                            s1 p5 100

                            s1 p6 100

                            s2 p1 300

                            hellip hellip hellip

                            15

                            Expressions de valeur Peuvent ecirctre des attr dynamiques

                            imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                            Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                            SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                            Une bonne question pour Microsoft

                            16

                            Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                            reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                            vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                            les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                            Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                            Il faut la clause Parameters a int b int

                            17

                            Pour en savoir + sur les attributs dynamiques

                            Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                            Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                            Voir le site du CERIA

                            18

                            UNION et Noms Drsquoattributs

                            SELECT [s] FROM S

                            Union

                            SELECT [p] FROM p

                            Quel nom drsquoattribut sera dans le reacutesultat

                            Sous MSAccess Dans SQL Server MySQL Oraclehellip

                            19

                            UNION et ORDER BY

                            SELECT [s] FROM S

                            Union

                            SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                            les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                            Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                            apregraves le 2egraveme SELECT

                            20

                            ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                            ORDER BY clauseORDER BY SAL - COMM

                            Exceptions UNION MINUS INTERSECT

                            Cette clause peut reacutefeacuterencer lattribut par position

                            Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                            Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                            MsAccess

                            21

                            ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                            une expression qui nest pas dans SELECT clauseSelect S CITY

                            FROM SORDER BY SNAME STATUS+50

                            exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                            Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                            Essayez

                            SELECT distinct sp[s]

                            FROM sp

                            ORDER BY spqty

                            22

                            Ordre de prioriteacute dopeacuterations

                            1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                            2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                            [e][e]

                            23

                            Preacutedicat TOP

                            SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                            SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                            SQL Server eacutequivalent de TOP drsquoAccess

                            SELECT TOP hellip WITH TIES

                            >

                            24

                            Preacutedicat TOP

                            Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                            La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                            Pour seacutelectionner les tuples 303132

                            LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                            Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                            >

                            25

                            Clause BETWEEN

                            Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                            geacuteneacuteriques ndash contrairement agrave LIKE

                            Quel sera le reacutesultat pour Jones et pourquoi

                            SELECT FROM S where sname between b and J

                            Et si on eacutecrit

                            SELECT FROM S where sname between J and b

                            ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                            26

                            Limitations de NOT

                            Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                            (SELECT CITY FROM S)

                            Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                            Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                            Hypothegravese de Monde ouvert

                            27

                            ANY et ALL

                            All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                            (SELECT STATUS FROM S WHERE SNAME = BNP)

                            si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                            si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                            Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                            (SELECT STATUS FROM S WHERE SNAME = BNP)

                            28

                            Injection SQL On ajoute en fraude agrave une requecircte a priori en

                            restriction une condition qui annule cette restriction

                            Gros deacutegacircts sur le WEB notammentSELECT

                            FROM S

                            WHERE city=london Or True

                            SQL Injection

                            S SName Status City

                            s1 smith Paris

                            s2 Jones 100 london

                            s3 Blake 30 Paris

                            s4 Clark 10 london

                            s5 Adams 30 Athens

                            29

                            Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                            True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                            SELECT

                            FROM S

                            WHERE status= 100 Or 200

                            SELECT

                            FROM S

                            WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                            SELECT

                            FROM S

                            WHERE city=london Or 100

                            30

                            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                            Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                            BY et les valeurs individuelles en mecircme temps

                            ndash Impossible avec SQL standard

                            31

                            S Total Qty p1 p2 p3 p4 p5 p6

                            s1 1300 300 200 400 200 100 100

                            s2 700 300 400

                            s3 200 200

                            s4 900 200 300 400

                            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                            Tabulations Croiseacutees

                            32

                            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                            Transforment les valeurs dattributs en attributsndash Par exemple

                            les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                            les valeurs de P1 P2 sont les QTY (par ex) correspondants

                            33

                            S Total Qty p1 p2 p3 p4 p5 p6

                            s1 1300 300 200 400 200 100 100

                            s2 700 300 400

                            s3 200 200

                            s4 900 200 300 400

                            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                            Tabulations Croiseacutees

                            34

                            TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                            Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                            Tabulations Croiseacutees

                            Nouvellescolonnes

                            35

                            La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                            On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                            Tabulations Croiseacutees

                            36

                            On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                            Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                            On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                            Mais cette clause naffecte pas les calculs des agreacutegats

                            Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                            Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                            Tabulations Croiseacutees

                            37

                            XORSELECT S[S] SStatus SCity

                            FROM S

                            WHERE Status=10 Xor city=paris

                            bull A noter le traitement du nul dans City

                            38

                            IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                            bull A noter le traitement du nul dans City

                            39

                            Sous-requecirctes

                            A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                            clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                            rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                            sous-requecircte

                            SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                            40

                            Sous-requecirctes

                            Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                            laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                            vite ou Livrerait au moins aussi vite mais en quantiteacute

                            plus grande

                            41

                            Sous-requecirctes

                            Skylinendash Tout objet non-domineacute (cacheacute

                            totalement) par un autre

                            SELECT X[s] X[p] qty delay

                            FROM SP X

                            where not exists

                            (select from SP as Y

                            where (Yqty gt= XQty and YDelay lt XDelay or

                            Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                            order by X[p]

                            42

                            Sous-requecirctes Reacutesultat

                            s p qty delay

                            s1 p1 300 15

                            s4 p1 200 13

                            s3 p2 400 15

                            s2 p2 300 12

                            s1 p3 400 17

                            s4 p4 300 11

                            s4 p5 400 7

                            s1 p6 100 8

                            s p qty Delay

                            s1 p1 300 15

                            s1 p2 200 12

                            s1 p3 400 17

                            s1 p4 200 11

                            s1 p5 100 7

                            s1 p6 100 8

                            s2 p2 300 12

                            s3 p2 400 15

                            s4 p1 200 13

                            s4 p2 200 15

                            s4 p4 300 11

                            s4 p5 400 7

                            S

                            43

                            Sous-requecirctes

                            On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                            SELECT Count() AS TotalQty

                            FROM (select distinct qty from sp)

                            On peut aussi avoir une sous-requecircte dans la clause SELECT

                            SELECT SP[s] SP[p] qty

                            (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                            round(qtyTotalQty 3) AS Fraction

                            FROM SP order by [s]

                            44

                            Sous-requecirctes

                            s p qty TotalQty Fraction

                            s1 p1 300 1300 0231

                            s1 p6 100 1300 0077

                            s1 p5 100 1300 0077

                            s1 p4 200 1300 0154

                            s1 p3 400 1300 0308

                            s1 p2 200 1300 0154

                            s2 p2 300 300 1

                            s3 p2 400 400 1

                            s4 p5 400 1100 0364

                            s4 p4 300 1100 0273

                            s4 p2 200 1100 0182

                            bull ReacutesultatSP

                            s p qty

                            s1 p1 300

                            s1 p2 200

                            s1 p3 400

                            s1 p4 200

                            s1 p5 100

                            s1 p6 100

                            s2 p2 300

                            s3 p2 400

                            s4 p1 200

                            s4 p2 200

                            s4 p4 300

                            s4 p5 400

                            45

                            Sous-requecirctesbull En Mode Graphique

                            s p qtyTotalQty

                            Fraction

                            s1 p1 300 1300 0231

                            s1 p6 100 1300 0077

                            s1 p5 100 1300 0077

                            s1 p4 200 1300 0154

                            s1 p3 400 1300 0308

                            s1 p2 200 1300 0154

                            s2 p2 300 300 1

                            s3 p2 400 400 1

                            s4 p5 400 1100 0364

                            s4 p4 300 1100 0273

                            s4 p2 200 1100 0182

                            46

                            Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                            SELECT (select count(qty) from SP

                            where qty gt= [seuil svp ]) count() as reacutesultat

                            FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                            probabiliteacute conditionnelle

                            47

                            Clause FROM imbriqueacutee

                            Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                            Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                            Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                            Agrave essayer

                            48

                            Clause FROM imbriqueacuteePossibiliteacutes

                            ndash Agreacutegations par-dessus UNION ou UNION ALL

                            ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                            MsAccess

                            ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                            Mais la reacutefeacuterence au nom de la requecircte OK

                            49

                            Clause FROM imbriqueacutee

                            SELECT sum(weight) AS [poids-total]

                            FROM (SELECT weight pcity FROM P WHERE City like l

                            UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                            50

                            Clause FROM imbriqueacutee

                            select avg(moy1) as [moyenne-des-moyennes]

                            FROM

                            (SELECT avg(weight) as moy1 FROM P WHERE City like l

                            UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                            51

                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                            select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                            52

                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                            totaux partiels et total geacuteneacuteral

                            total_Id TotalQty

                            s1 1300

                            s2 300

                            s3 400

                            s4 400

                            total Geacuteneacuteral

                            2400

                            53

                            Valeurs nulles

                            Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                            En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                            DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                            Non WHERE HAVING GROUP BY (rel 1)

                            Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                            MsAccess Oui DISTINCT Autres clauses

                            54

                            Valeurs nulles Si x est nul et y nrsquoest pas alors

                            1 x gt y est vrai ou faux

                            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                            SELECT FROM S WHERE CITY =Paris

                            UNION

                            SELECT FROM S WHERE NOT CITY = Paris

                            est toujours pourquoi faire simpleSELECT FROM S

                            si on peut faire compliqueacute

                            55

                            Valeurs nullesValeurs nulles

                            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                            56

                            Valeurs nulles

                            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                            LOG (nul) -gt Error A voir cas par cas

                            57

                            Fonctions Scalaires DateTemps

                            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                            58

                            Fonctions Scalaires DateTemps

                            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                            weekday(day(now())-1) AS [day]FROM S

                            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                            59

                            Fonctions Scalaires DateTemps

                            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                            Interval Explanation

                            Yyyy Year

                            q Quarter

                            m Month

                            y Day of year

                            d Day

                            w Weekday

                            ww Week

                            h Hour

                            n Minute

                            s Second

                            60

                            Fonctions Scalaires DateTemps

                            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                            Test DateDiff

                            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                            61

                            Fonctions Scalaires DateTemps

                            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                            Liste tous les tuples ougrave DateV est de Janvier 2009

                            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                            62

                            Fonction Scalaire RND

                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                            FROM SPORDER BY rnd(qty) DESC

                            echantillon s rank

                            s1 502628087997437E-02

                            s4 0518015921115875

                            s3 075702953338623

                            63

                            Fonction Scalaire RND

                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                            FROM SPORDER BY rnd(qty) DESC

                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                            Votre commentaire ici

                            64

                            Fonctions Financiegraveres

                            Fonction DDB Calcule lamortissement deacutegressif

                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                            65

                            Fonctions Financiegraveres

                            Fonction DDB Calcule lamortissement deacutegressif

                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                            66

                            Fonction DDB

                            insert into DDB (cost salvage life factor amortiss period)

                            select 100 as cost 70 as salvage 5 as life 1 as factor

                            DDB(cost salvage life period factor) as amortiss period

                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                            67

                            Fonction DDB

                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                            68

                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                            nombres neacutegatifs

                            Fonction PMT

                            69

                            Fonction PMT

                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                            Fonction PMT calcul dannuiteacute demprunt

                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                            preacutesentevaleur_payeacutee surprime

                            -16049 005 20 200000 -320980 -120980

                            70

                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                            Et les nuls que log ne supporte pas

                            Anneacutee relative

                            Taux

                            1 4

                            2 4

                            3 3

                            4 5

                            5 5

                            Voir + dans le livre laquo SQL Design Patterns raquo

                            71

                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                            est eacutequivalente agrave

                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                            WHERE XP = SPP) FROM SP

                            Testez

                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                            72

                            LIST Function La requecircte

                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                            Comme les tabulations croiseacutees

                            ndash Mais en + simple

                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                            ndash En mono attribut (2004)

                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                            sous-formulaires

                            73

                            LIST Function

                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                            74

                            GROUP BY avec WHERE

                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                            75

                            GROUP BY

                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                            Pourquoi

                            76

                            GROUP BY avec HAVING

                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                            77

                            T-GROUP BY Proposeacute pour SQL

                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                            Le rocircle de -join par rapport agrave equi-join

                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                            INT(AVG(QTY)) AS QTY2FROM SP

                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                            78

                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                            FROM SP Vrai ou Faux

                            79

                            T-GROUP BY

                            Reacutesultat

                            part avg_qty_other_parts part_avg_qty

                            p1 250 300

                            p2 262 250

                            p3 245 400

                            p4 260 250

                            p5 260 250

                            p6 272 100

                            80

                            T-GROUP BY

                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                            81

                            Rangs Non-Denses(Non Dense Ranking)

                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                            s p qtyND-rank

                            s4 p5 400 1

                            s3 p2 400 1

                            s1 p3 400 1

                            s4 p4 300 4

                            s2 p2 300 4

                            s1 p1 300 4

                            s4 p2 200 7

                            s1 p4 200 7

                            s1 p2 200 7

                            s4 p1 200 7

                            s1 p6 100 11

                            s1 p5 100 11

                            82

                            Rangs Non-Denses(Graphique MsAccess)

                            s p qty ND-rank

                            s4 p5 400 1

                            s3 p2 400 1

                            s1 p3 400 1

                            s4 p4 300 4

                            s2 p2 300 4

                            s1 p1 300 4

                            s4 p2 200 7

                            s1 p4 200 7

                            s1 p2 200 7

                            s4 p1 200 7

                            s1 p6 100 11

                            s1 p5 100 11

                            83

                            Rangs Denses(Dense Ranking)

                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                            s p qtyD-rank

                            s1 p3 400 1

                            s3 p2 400 1

                            s4 p5 400 1

                            s1 p1 300 2

                            s2 p2 300 2

                            s4 p4 300 2

                            s1 p4 200 3

                            s1 p2 200 3

                            s4 p2 200 3

                            s4 p1 200 3

                            s1 p6 100 4

                            s1 p5 100 4

                            84

                            Rangs DensesGraphique MsAccess

                            s p qty D-rank

                            s1 p3 400 1

                            s3 p2 400 1

                            s4 p5 400 1

                            s1 p1 300 2

                            s2 p2 300 2

                            s4 p4 300 2

                            s1 p4 200 3

                            s1 p2 200 3

                            s4 p2 200 3

                            s4 p1 200 3

                            s1 p6 100 4

                            s1 p5 100 4

                            85

                            Distribution

                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                            86

                            Reacutesultat

                            s Distribution

                            s1 0419

                            s2 0097

                            s3 0129

                            s4 0355

                            87

                            Distribution Cumulative

                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                            FROM SP

                            ORDER BY SP[s]

                            88

                            Reacutesultat

                            sDistribution Cumuleacutee

                            s1 0419

                            s2 0516

                            s3 0645

                            s4 1

                            89

                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                            - Un outil - Fonction scalaire IIF de SQL Access

                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                            - On peut alternativement utiliser UNION ou UNION ALL

                            90

                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                            IIf([status]lt30OKgood) AS IIfSimple

                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                            FROM S

                            GROUP BY S[S] SSName SStatus SCity

                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                            s1 Smith Paris good good

                            s2 Jones 100 london good VGood

                            s3 Blake 30 Paris good good

                            s4 Clark 10 london OK OK

                            s5 Adams 30 Athens good good

                            bull Notez le traitement du null

                            91

                            Cateacutegorisation Emploi alternatif drsquoUNION

                            SELECT Ppname weight Very Heavy as Warning

                            FROM P where weight gt 13

                            union

                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                            UNION

                            select Ppname weight Light as warn from p where weight lt 10

                            ORDER BY warning DESC weight DESC

                            pname weight Warning

                            cam 19 Very Heavy

                            cog 19 Very Heavy

                            bolt 17 Very Heavy

                            nut 14 Very Heavy

                            screw 14 Very Heavy

                            nut 14 Quite Heavy

                            screw 14 Quite Heavy

                            screw 12 Quite Heavy

                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                            92

                            UNIONPreacutedictions de Valeurs Inconnues

                            On considegravere AVG(Qty1) pour Qty

                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                            SP

                            s p qtyQty1

                            s1 p1 300 400

                            s1 p2 200

                            s1 p3 400 600

                            s1 p4 200 300

                            s1 p5 100

                            s1 p6 100 200

                            s2 p2 300 500

                            s3 p2 400

                            s4 p1 200 100

                            s4 p2 200

                            s4 p4 300

                            s4 p5 400

                            93

                            UNIONPreacutediction de Valeurs Inconnues

                            On peut compleacuteter SP par UPDATE SPReacutesultat

                            SP

                            s p qtyQty1

                            s1 p1 300 400

                            s1 p2 200

                            s1 p3 400 600

                            s1 p4 200 300

                            s1 p5 100

                            s1 p6 100 200

                            s2 p2 300 500

                            s3 p2 400

                            s4 p1 200 100

                            s4 p2 200

                            s4 p4 300

                            s4 p5 400

                            qty for partpredicted or

                            unknown Qty1

                            100 p5

                            100 predicted value 200

                            200 p2

                            200 predicted value 200

                            300 p4

                            300 predicted value 450

                            400 p2

                            400 p5

                            400 predicted value 600

                            94

                            Tendance

                            qty Qty1

                            100 200

                            200 300

                            300 400

                            400 600

                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                            SP est supposeacute avec la DF entre Qty et Qty1

                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                            Graph 3D avec Qty en abscisses

                            95

                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                            30102008 120 27102008 4

                            25102008 131 22102008 4

                            23102008 127 20102008 4

                            17102008 269 14102008 4

                            15102008 60 12102008 4

                            11102008 295 08102008 4

                            09102008 340 06102008 4

                            08102008 324 05102008 4

                            06102008 315 03102008 4

                            96

                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                            Graphique avec une info-bulle

                            97

                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                            glissantes

                            bull CSUM (Cumulative (Running) Sums)

                            bull MAVG

                            bull MSUM

                            bull MDIFF

                            bull Voir Teradata + loin

                            98

                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                            99

                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                            Entiers est une table aux avec la colonne de12hellip10

                            100

                            Seacuteries financiegraveres

                            capital taux nval apregraves n ans

                            taux1val1 apregraves n ans

                            GainAbs GainRel

                            100 005 1 105 006 106 1 1

                            100 005 2 110 006 112 2 2

                            100 005 3 115 006 119 4 4

                            100 005 4 121 006 126 5 5

                            100 005 5 127 006 133 6 6

                            100 005 6 134 006 141 7 7

                            100 005 7 140 006 150 10 10

                            100 005 8 147 006 159 12 12

                            100 005 9 155 006 168 13 13

                            100 005 10 162 006 179 17 17

                            100 005 11 171 006 189 18 18

                            100 005 12 179 006 201 22 22

                            100 005 13 188 006 213 25 25

                            100 005 14 197 006 226 29 29

                            100 005 15 207 006 239 32 32

                            100 005 16 218 006 254 36 36

                            100 005 17 229 006 269 40 40

                            100 005 18 240 006 285 45 45

                            100 005 19 252 006 302 50 50

                            100 005 20 265 006 320 55 55

                            101

                            Seacuteries financiegraveres

                            102

                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                            financiers de la table Produits

                            bull Dans la limite L de la somme donneacutee

                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                            bull En ordre descendant de prix

                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                            bull Plusieurs actionshellip

                            103

                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                            P prix

                            p3 200

                            p1 200

                            p2 400

                            p3 200

                            p4 100

                            p6 100

                            p5 300

                            p8 300

                            p7 400

                            p10 200

                            p12 300

                            p13 300

                            104

                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                            ORDER BY 4 desc 8 123

                            105

                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                            106

                            Creacuteation drsquoun Portefeuille Discussion

                            Creacuteation drsquoun Portefeuille Discussion

                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                            107

                            Creacuteation drsquoun Portefeuille Discussion

                            Creacuteation drsquoun Portefeuille Discussion

                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                            108

                            ROLLUP(DB2 amp SQL-Server)

                            ROLLUP(DB2 amp SQL-Server)

                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                            109

                            CUBE(DB2 amp SQL-Server)

                            CUBE(DB2 amp SQL-Server)

                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                            110

                            GROUPING SETS

                            On indique explicitement les groupesndash entre ()

                            le groupe () est constitueacute de toute la table

                            SELECT p sum (qty) as tot-qty from SSP P

                            WHERE SP P = PP AND SP S = SS

                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                            HAVING tot-qty gt 100

                            Problegravemes avec des nuls que lrsquoon verra plus tard

                            111

                            Rollup Cube Grouping Setssous MsAccess

                            Il y en a pas On peut simuler ces manipulations en

                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                            Peut ecirctre laborieux pour le CUBE

                            112

                            ROLLUP

                            Remarquez le laquo null as cityraquo

                            113

                            ROLLUP

                            114

                            ROLLUP

                            Et le CUBE

                            Une solution pour l ambiguiumlteacute

                            de certains nuls

                            115

                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                            Wiley (publ)

                            116

                            Sous-Tables Parameacutetreacutees

                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                            117

                            Sous-Tables Parameacutetreacutees

                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                            118

                            Sous-Tables Parameacutetreacutees

                            119

                            Sous-Tables Parameacutetreacutees

                            120

                            Sous-Tables Parameacutetreacutees

                            121

                            Sous-Tables Parameacutetreacutees

                            122

                            Sous-Tables Parameacutetreacutees

                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                            123

                            Sous-Tables Parameacutetreacutees

                            Exeacutecution autonome

                            124

                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                            ecirctre choisi que dans une ville drsquoun client de Northwind

                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                            hellip

                            125

                            Liste de Choix Multibase

                            bull Requecircte Test-liste-de-choix mdb

                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                            126

                            Liste de Choix MultibaseReacutesultat

                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                            Tregraves bonne question agrave Microsoft

                            148

                            FIN

                            149

                            • SQL Avanceacute 2010
                            • Quoi amp Pourquoi
                            • Slide 3
                            • Synonymes
                            • Noms dattributs
                            • Slide 6
                            • Slide 7
                            • Slide 8
                            • Insertion dans une Vue
                            • Insertion dans une Vue (2)
                            • MAJ drsquoune Vue MsAccess
                            • MAJ drsquoune Vue MsAccess (2)
                            • Suppression dans une Vue MsAccess
                            • MsAccess Leacutegendes
                            • Expressions de valeur
                            • Expressions de valeur (2)
                            • Pour en savoir + sur les attributs dynamiques
                            • UNION et Noms Drsquoattributs
                            • UNION et ORDER BY
                            • ORDER BY et expressions de valeur
                            • ORDER BY et expressions de valeur (2)
                            • Ordre de prioriteacute dopeacuterations
                            • Preacutedicat TOP
                            • Preacutedicat TOP (2)
                            • Clause BETWEEN
                            • Limitations de NOT
                            • ANY et ALL
                            • Injection SQL
                            • Injection SQL (2)
                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                            • Tabulations Croiseacutees
                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                            • Tabulations Croiseacutees (2)
                            • Tabulations Croiseacutees (3)
                            • Tabulations Croiseacutees (4)
                            • Tabulations Croiseacutees (5)
                            • XOR
                            • IMP
                            • Sous-requecirctes
                            • Sous-requecirctes (2)
                            • Sous-requecirctes (3)
                            • Sous-requecirctes (4)
                            • Sous-requecirctes (5)
                            • Sous-requecirctes (6)
                            • Sous-requecirctes (7)
                            • Application aux Probabiliteacutes
                            • Clause FROM imbriqueacutee
                            • Clause FROM imbriqueacutee (2)
                            • Clause FROM imbriqueacutee (3)
                            • Clause FROM imbriqueacutee (4)
                            • Clause FROM imbriqueacutee (5)
                            • Clause FROM imbriqueacutee (6)
                            • Valeurs nulles
                            • Valeurs nulles (2)
                            • Valeurs nulles (3)
                            • Valeurs nulles (4)
                            • Fonctions Scalaires DateTemps
                            • Fonctions Scalaires DateTemps (2)
                            • Fonctions Scalaires DateTemps (3)
                            • Fonctions Scalaires DateTemps (4)
                            • Fonctions Scalaires DateTemps (5)
                            • Fonction Scalaire RND
                            • Fonction Scalaire RND (2)
                            • Fonctions Financiegraveres
                            • Fonctions Financiegraveres (2)
                            • Fonction DDB
                            • Fonction DDB (2)
                            • Fonction PMT
                            • Fonction PMT (2)
                            • Placement agrave taux variable
                            • GROUP BY
                            • LIST Function
                            • LIST Function (2)
                            • GROUP BY avec WHERE
                            • GROUP BY (2)
                            • GROUP BY avec HAVING
                            • T-GROUP BY
                            • T-GROUP BY (2)
                            • T-GROUP BY (3)
                            • T-GROUP BY (4)
                            • Rangs Non-Denses (Non Dense Ranking)
                            • Rangs Non-Denses (Graphique MsAccess)
                            • Rangs Denses (Dense Ranking)
                            • Rangs Denses Graphique MsAccess
                            • Distribution
                            • Reacutesultat
                            • Distribution Cumulative
                            • Reacutesultat (2)
                            • Cateacutegorisation
                            • Cateacutegorisation (2)
                            • Cateacutegorisation (3)
                            • UNION Preacutedictions de Valeurs Inconnues
                            • UNION Preacutediction de Valeurs Inconnues
                            • Tendance
                            • Moyenne Glissante
                            • Moyenne Glissante (2)
                            • Moyenne Glissante (3)
                            • Seacuteries financiegraveres
                            • Seacuteries financiegraveres (2)
                            • Seacuteries financiegraveres (3)
                            • Seacuteries financiegraveres (4)
                            • Creacuteation drsquoun Portefeuille
                            • Creacuteation drsquoun Portefeuille (2)
                            • Creacuteation drsquoun Portefeuille (3)
                            • Creacuteation drsquoun Portefeuille (4)
                            • Creacuteation drsquoun Portefeuille Discussion
                            • Creacuteation drsquoun Portefeuille Discussion (2)
                            • ROLLUP (DB2 amp SQL-Server)
                            • CUBE (DB2 amp SQL-Server)
                            • GROUPING SETS
                            • Rollup Cube Grouping Sets sous MsAccess
                            • Slide 112
                            • Slide 113
                            • Slide 114
                            • Autres Opeacuterations Utiles
                            • Sous-Tables Parameacutetreacutees
                            • Sous-Tables Parameacutetreacutees (2)
                            • Sous-Tables Parameacutetreacutees (3)
                            • Sous-Tables Parameacutetreacutees (4)
                            • Sous-Tables Parameacutetreacutees (5)
                            • Sous-Tables Parameacutetreacutees (6)
                            • Sous-Tables Parameacutetreacutees (7)
                            • Sous-Tables Parameacutetreacutees (8)
                            • Liste de Choix Multibase
                            • Liste de Choix Multibase (2)
                            • Liste de Choix Multibase Reacutesultat
                            • FIN
                            • Slide 149

                              15

                              Expressions de valeur Peuvent ecirctre des attr dynamiques

                              imbriqueacutees dans SQL de MsAccessSELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP

                              Mais ces atttr ne peuvent pas ecirctre reacutefeacuterenceacutes dans la clause WHERE

                              SELECT Qty [S] qty1-4 AS qty2 qty23 AS qty3 2qty AS qty1 FROM SP where qty1 gt 200 ndash pourquoi

                              Une bonne question pour Microsoft

                              16

                              Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                              reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                              vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                              les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                              Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                              Il faut la clause Parameters a int b int

                              17

                              Pour en savoir + sur les attributs dynamiques

                              Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                              Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                              Voir le site du CERIA

                              18

                              UNION et Noms Drsquoattributs

                              SELECT [s] FROM S

                              Union

                              SELECT [p] FROM p

                              Quel nom drsquoattribut sera dans le reacutesultat

                              Sous MSAccess Dans SQL Server MySQL Oraclehellip

                              19

                              UNION et ORDER BY

                              SELECT [s] FROM S

                              Union

                              SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                              les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                              Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                              apregraves le 2egraveme SELECT

                              20

                              ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                              ORDER BY clauseORDER BY SAL - COMM

                              Exceptions UNION MINUS INTERSECT

                              Cette clause peut reacutefeacuterencer lattribut par position

                              Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                              Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                              MsAccess

                              21

                              ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                              une expression qui nest pas dans SELECT clauseSelect S CITY

                              FROM SORDER BY SNAME STATUS+50

                              exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                              Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                              Essayez

                              SELECT distinct sp[s]

                              FROM sp

                              ORDER BY spqty

                              22

                              Ordre de prioriteacute dopeacuterations

                              1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                              2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                              [e][e]

                              23

                              Preacutedicat TOP

                              SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                              SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                              SQL Server eacutequivalent de TOP drsquoAccess

                              SELECT TOP hellip WITH TIES

                              >

                              24

                              Preacutedicat TOP

                              Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                              La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                              Pour seacutelectionner les tuples 303132

                              LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                              Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                              >

                              25

                              Clause BETWEEN

                              Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                              geacuteneacuteriques ndash contrairement agrave LIKE

                              Quel sera le reacutesultat pour Jones et pourquoi

                              SELECT FROM S where sname between b and J

                              Et si on eacutecrit

                              SELECT FROM S where sname between J and b

                              ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                              26

                              Limitations de NOT

                              Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                              (SELECT CITY FROM S)

                              Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                              Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                              Hypothegravese de Monde ouvert

                              27

                              ANY et ALL

                              All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                              (SELECT STATUS FROM S WHERE SNAME = BNP)

                              si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                              si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                              Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                              (SELECT STATUS FROM S WHERE SNAME = BNP)

                              28

                              Injection SQL On ajoute en fraude agrave une requecircte a priori en

                              restriction une condition qui annule cette restriction

                              Gros deacutegacircts sur le WEB notammentSELECT

                              FROM S

                              WHERE city=london Or True

                              SQL Injection

                              S SName Status City

                              s1 smith Paris

                              s2 Jones 100 london

                              s3 Blake 30 Paris

                              s4 Clark 10 london

                              s5 Adams 30 Athens

                              29

                              Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                              True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                              SELECT

                              FROM S

                              WHERE status= 100 Or 200

                              SELECT

                              FROM S

                              WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                              SELECT

                              FROM S

                              WHERE city=london Or 100

                              30

                              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                              Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                              BY et les valeurs individuelles en mecircme temps

                              ndash Impossible avec SQL standard

                              31

                              S Total Qty p1 p2 p3 p4 p5 p6

                              s1 1300 300 200 400 200 100 100

                              s2 700 300 400

                              s3 200 200

                              s4 900 200 300 400

                              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                              Tabulations Croiseacutees

                              32

                              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                              Transforment les valeurs dattributs en attributsndash Par exemple

                              les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                              les valeurs de P1 P2 sont les QTY (par ex) correspondants

                              33

                              S Total Qty p1 p2 p3 p4 p5 p6

                              s1 1300 300 200 400 200 100 100

                              s2 700 300 400

                              s3 200 200

                              s4 900 200 300 400

                              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                              Tabulations Croiseacutees

                              34

                              TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                              Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                              Tabulations Croiseacutees

                              Nouvellescolonnes

                              35

                              La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                              On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                              Tabulations Croiseacutees

                              36

                              On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                              Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                              On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                              Mais cette clause naffecte pas les calculs des agreacutegats

                              Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                              Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                              Tabulations Croiseacutees

                              37

                              XORSELECT S[S] SStatus SCity

                              FROM S

                              WHERE Status=10 Xor city=paris

                              bull A noter le traitement du nul dans City

                              38

                              IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                              bull A noter le traitement du nul dans City

                              39

                              Sous-requecirctes

                              A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                              clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                              rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                              sous-requecircte

                              SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                              40

                              Sous-requecirctes

                              Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                              laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                              vite ou Livrerait au moins aussi vite mais en quantiteacute

                              plus grande

                              41

                              Sous-requecirctes

                              Skylinendash Tout objet non-domineacute (cacheacute

                              totalement) par un autre

                              SELECT X[s] X[p] qty delay

                              FROM SP X

                              where not exists

                              (select from SP as Y

                              where (Yqty gt= XQty and YDelay lt XDelay or

                              Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                              order by X[p]

                              42

                              Sous-requecirctes Reacutesultat

                              s p qty delay

                              s1 p1 300 15

                              s4 p1 200 13

                              s3 p2 400 15

                              s2 p2 300 12

                              s1 p3 400 17

                              s4 p4 300 11

                              s4 p5 400 7

                              s1 p6 100 8

                              s p qty Delay

                              s1 p1 300 15

                              s1 p2 200 12

                              s1 p3 400 17

                              s1 p4 200 11

                              s1 p5 100 7

                              s1 p6 100 8

                              s2 p2 300 12

                              s3 p2 400 15

                              s4 p1 200 13

                              s4 p2 200 15

                              s4 p4 300 11

                              s4 p5 400 7

                              S

                              43

                              Sous-requecirctes

                              On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                              SELECT Count() AS TotalQty

                              FROM (select distinct qty from sp)

                              On peut aussi avoir une sous-requecircte dans la clause SELECT

                              SELECT SP[s] SP[p] qty

                              (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                              round(qtyTotalQty 3) AS Fraction

                              FROM SP order by [s]

                              44

                              Sous-requecirctes

                              s p qty TotalQty Fraction

                              s1 p1 300 1300 0231

                              s1 p6 100 1300 0077

                              s1 p5 100 1300 0077

                              s1 p4 200 1300 0154

                              s1 p3 400 1300 0308

                              s1 p2 200 1300 0154

                              s2 p2 300 300 1

                              s3 p2 400 400 1

                              s4 p5 400 1100 0364

                              s4 p4 300 1100 0273

                              s4 p2 200 1100 0182

                              bull ReacutesultatSP

                              s p qty

                              s1 p1 300

                              s1 p2 200

                              s1 p3 400

                              s1 p4 200

                              s1 p5 100

                              s1 p6 100

                              s2 p2 300

                              s3 p2 400

                              s4 p1 200

                              s4 p2 200

                              s4 p4 300

                              s4 p5 400

                              45

                              Sous-requecirctesbull En Mode Graphique

                              s p qtyTotalQty

                              Fraction

                              s1 p1 300 1300 0231

                              s1 p6 100 1300 0077

                              s1 p5 100 1300 0077

                              s1 p4 200 1300 0154

                              s1 p3 400 1300 0308

                              s1 p2 200 1300 0154

                              s2 p2 300 300 1

                              s3 p2 400 400 1

                              s4 p5 400 1100 0364

                              s4 p4 300 1100 0273

                              s4 p2 200 1100 0182

                              46

                              Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                              SELECT (select count(qty) from SP

                              where qty gt= [seuil svp ]) count() as reacutesultat

                              FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                              probabiliteacute conditionnelle

                              47

                              Clause FROM imbriqueacutee

                              Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                              Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                              Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                              Agrave essayer

                              48

                              Clause FROM imbriqueacuteePossibiliteacutes

                              ndash Agreacutegations par-dessus UNION ou UNION ALL

                              ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                              MsAccess

                              ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                              Mais la reacutefeacuterence au nom de la requecircte OK

                              49

                              Clause FROM imbriqueacutee

                              SELECT sum(weight) AS [poids-total]

                              FROM (SELECT weight pcity FROM P WHERE City like l

                              UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                              50

                              Clause FROM imbriqueacutee

                              select avg(moy1) as [moyenne-des-moyennes]

                              FROM

                              (SELECT avg(weight) as moy1 FROM P WHERE City like l

                              UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                              51

                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                              select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                              52

                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                              totaux partiels et total geacuteneacuteral

                              total_Id TotalQty

                              s1 1300

                              s2 300

                              s3 400

                              s4 400

                              total Geacuteneacuteral

                              2400

                              53

                              Valeurs nulles

                              Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                              En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                              DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                              Non WHERE HAVING GROUP BY (rel 1)

                              Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                              MsAccess Oui DISTINCT Autres clauses

                              54

                              Valeurs nulles Si x est nul et y nrsquoest pas alors

                              1 x gt y est vrai ou faux

                              2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                              DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                              SELECT FROM S WHERE CITY =Paris

                              UNION

                              SELECT FROM S WHERE NOT CITY = Paris

                              est toujours pourquoi faire simpleSELECT FROM S

                              si on peut faire compliqueacute

                              55

                              Valeurs nullesValeurs nulles

                              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                              56

                              Valeurs nulles

                              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                              LOG (nul) -gt Error A voir cas par cas

                              57

                              Fonctions Scalaires DateTemps

                              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                              58

                              Fonctions Scalaires DateTemps

                              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                              weekday(day(now())-1) AS [day]FROM S

                              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                              59

                              Fonctions Scalaires DateTemps

                              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                              Interval Explanation

                              Yyyy Year

                              q Quarter

                              m Month

                              y Day of year

                              d Day

                              w Weekday

                              ww Week

                              h Hour

                              n Minute

                              s Second

                              60

                              Fonctions Scalaires DateTemps

                              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                              Test DateDiff

                              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                              61

                              Fonctions Scalaires DateTemps

                              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                              Liste tous les tuples ougrave DateV est de Janvier 2009

                              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                              62

                              Fonction Scalaire RND

                              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                              FROM SPORDER BY rnd(qty) DESC

                              echantillon s rank

                              s1 502628087997437E-02

                              s4 0518015921115875

                              s3 075702953338623

                              63

                              Fonction Scalaire RND

                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                              FROM SPORDER BY rnd(qty) DESC

                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                              Votre commentaire ici

                              64

                              Fonctions Financiegraveres

                              Fonction DDB Calcule lamortissement deacutegressif

                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                              65

                              Fonctions Financiegraveres

                              Fonction DDB Calcule lamortissement deacutegressif

                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                              66

                              Fonction DDB

                              insert into DDB (cost salvage life factor amortiss period)

                              select 100 as cost 70 as salvage 5 as life 1 as factor

                              DDB(cost salvage life period factor) as amortiss period

                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                              67

                              Fonction DDB

                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                              68

                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                              nombres neacutegatifs

                              Fonction PMT

                              69

                              Fonction PMT

                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                              Fonction PMT calcul dannuiteacute demprunt

                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                              preacutesentevaleur_payeacutee surprime

                              -16049 005 20 200000 -320980 -120980

                              70

                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                              Et les nuls que log ne supporte pas

                              Anneacutee relative

                              Taux

                              1 4

                              2 4

                              3 3

                              4 5

                              5 5

                              Voir + dans le livre laquo SQL Design Patterns raquo

                              71

                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                              est eacutequivalente agrave

                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                              WHERE XP = SPP) FROM SP

                              Testez

                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                              72

                              LIST Function La requecircte

                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                              Comme les tabulations croiseacutees

                              ndash Mais en + simple

                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                              ndash En mono attribut (2004)

                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                              sous-formulaires

                              73

                              LIST Function

                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                              74

                              GROUP BY avec WHERE

                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                              75

                              GROUP BY

                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                              Pourquoi

                              76

                              GROUP BY avec HAVING

                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                              77

                              T-GROUP BY Proposeacute pour SQL

                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                              Le rocircle de -join par rapport agrave equi-join

                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                              INT(AVG(QTY)) AS QTY2FROM SP

                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                              78

                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                              FROM SP Vrai ou Faux

                              79

                              T-GROUP BY

                              Reacutesultat

                              part avg_qty_other_parts part_avg_qty

                              p1 250 300

                              p2 262 250

                              p3 245 400

                              p4 260 250

                              p5 260 250

                              p6 272 100

                              80

                              T-GROUP BY

                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                              81

                              Rangs Non-Denses(Non Dense Ranking)

                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                              s p qtyND-rank

                              s4 p5 400 1

                              s3 p2 400 1

                              s1 p3 400 1

                              s4 p4 300 4

                              s2 p2 300 4

                              s1 p1 300 4

                              s4 p2 200 7

                              s1 p4 200 7

                              s1 p2 200 7

                              s4 p1 200 7

                              s1 p6 100 11

                              s1 p5 100 11

                              82

                              Rangs Non-Denses(Graphique MsAccess)

                              s p qty ND-rank

                              s4 p5 400 1

                              s3 p2 400 1

                              s1 p3 400 1

                              s4 p4 300 4

                              s2 p2 300 4

                              s1 p1 300 4

                              s4 p2 200 7

                              s1 p4 200 7

                              s1 p2 200 7

                              s4 p1 200 7

                              s1 p6 100 11

                              s1 p5 100 11

                              83

                              Rangs Denses(Dense Ranking)

                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                              s p qtyD-rank

                              s1 p3 400 1

                              s3 p2 400 1

                              s4 p5 400 1

                              s1 p1 300 2

                              s2 p2 300 2

                              s4 p4 300 2

                              s1 p4 200 3

                              s1 p2 200 3

                              s4 p2 200 3

                              s4 p1 200 3

                              s1 p6 100 4

                              s1 p5 100 4

                              84

                              Rangs DensesGraphique MsAccess

                              s p qty D-rank

                              s1 p3 400 1

                              s3 p2 400 1

                              s4 p5 400 1

                              s1 p1 300 2

                              s2 p2 300 2

                              s4 p4 300 2

                              s1 p4 200 3

                              s1 p2 200 3

                              s4 p2 200 3

                              s4 p1 200 3

                              s1 p6 100 4

                              s1 p5 100 4

                              85

                              Distribution

                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                              86

                              Reacutesultat

                              s Distribution

                              s1 0419

                              s2 0097

                              s3 0129

                              s4 0355

                              87

                              Distribution Cumulative

                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                              FROM SP

                              ORDER BY SP[s]

                              88

                              Reacutesultat

                              sDistribution Cumuleacutee

                              s1 0419

                              s2 0516

                              s3 0645

                              s4 1

                              89

                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                              - Un outil - Fonction scalaire IIF de SQL Access

                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                              - On peut alternativement utiliser UNION ou UNION ALL

                              90

                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                              IIf([status]lt30OKgood) AS IIfSimple

                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                              FROM S

                              GROUP BY S[S] SSName SStatus SCity

                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                              s1 Smith Paris good good

                              s2 Jones 100 london good VGood

                              s3 Blake 30 Paris good good

                              s4 Clark 10 london OK OK

                              s5 Adams 30 Athens good good

                              bull Notez le traitement du null

                              91

                              Cateacutegorisation Emploi alternatif drsquoUNION

                              SELECT Ppname weight Very Heavy as Warning

                              FROM P where weight gt 13

                              union

                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                              UNION

                              select Ppname weight Light as warn from p where weight lt 10

                              ORDER BY warning DESC weight DESC

                              pname weight Warning

                              cam 19 Very Heavy

                              cog 19 Very Heavy

                              bolt 17 Very Heavy

                              nut 14 Very Heavy

                              screw 14 Very Heavy

                              nut 14 Quite Heavy

                              screw 14 Quite Heavy

                              screw 12 Quite Heavy

                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                              92

                              UNIONPreacutedictions de Valeurs Inconnues

                              On considegravere AVG(Qty1) pour Qty

                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                              SP

                              s p qtyQty1

                              s1 p1 300 400

                              s1 p2 200

                              s1 p3 400 600

                              s1 p4 200 300

                              s1 p5 100

                              s1 p6 100 200

                              s2 p2 300 500

                              s3 p2 400

                              s4 p1 200 100

                              s4 p2 200

                              s4 p4 300

                              s4 p5 400

                              93

                              UNIONPreacutediction de Valeurs Inconnues

                              On peut compleacuteter SP par UPDATE SPReacutesultat

                              SP

                              s p qtyQty1

                              s1 p1 300 400

                              s1 p2 200

                              s1 p3 400 600

                              s1 p4 200 300

                              s1 p5 100

                              s1 p6 100 200

                              s2 p2 300 500

                              s3 p2 400

                              s4 p1 200 100

                              s4 p2 200

                              s4 p4 300

                              s4 p5 400

                              qty for partpredicted or

                              unknown Qty1

                              100 p5

                              100 predicted value 200

                              200 p2

                              200 predicted value 200

                              300 p4

                              300 predicted value 450

                              400 p2

                              400 p5

                              400 predicted value 600

                              94

                              Tendance

                              qty Qty1

                              100 200

                              200 300

                              300 400

                              400 600

                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                              SP est supposeacute avec la DF entre Qty et Qty1

                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                              Graph 3D avec Qty en abscisses

                              95

                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                              30102008 120 27102008 4

                              25102008 131 22102008 4

                              23102008 127 20102008 4

                              17102008 269 14102008 4

                              15102008 60 12102008 4

                              11102008 295 08102008 4

                              09102008 340 06102008 4

                              08102008 324 05102008 4

                              06102008 315 03102008 4

                              96

                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                              Graphique avec une info-bulle

                              97

                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                              glissantes

                              bull CSUM (Cumulative (Running) Sums)

                              bull MAVG

                              bull MSUM

                              bull MDIFF

                              bull Voir Teradata + loin

                              98

                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                              99

                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                              Entiers est une table aux avec la colonne de12hellip10

                              100

                              Seacuteries financiegraveres

                              capital taux nval apregraves n ans

                              taux1val1 apregraves n ans

                              GainAbs GainRel

                              100 005 1 105 006 106 1 1

                              100 005 2 110 006 112 2 2

                              100 005 3 115 006 119 4 4

                              100 005 4 121 006 126 5 5

                              100 005 5 127 006 133 6 6

                              100 005 6 134 006 141 7 7

                              100 005 7 140 006 150 10 10

                              100 005 8 147 006 159 12 12

                              100 005 9 155 006 168 13 13

                              100 005 10 162 006 179 17 17

                              100 005 11 171 006 189 18 18

                              100 005 12 179 006 201 22 22

                              100 005 13 188 006 213 25 25

                              100 005 14 197 006 226 29 29

                              100 005 15 207 006 239 32 32

                              100 005 16 218 006 254 36 36

                              100 005 17 229 006 269 40 40

                              100 005 18 240 006 285 45 45

                              100 005 19 252 006 302 50 50

                              100 005 20 265 006 320 55 55

                              101

                              Seacuteries financiegraveres

                              102

                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                              financiers de la table Produits

                              bull Dans la limite L de la somme donneacutee

                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                              bull En ordre descendant de prix

                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                              bull Plusieurs actionshellip

                              103

                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                              P prix

                              p3 200

                              p1 200

                              p2 400

                              p3 200

                              p4 100

                              p6 100

                              p5 300

                              p8 300

                              p7 400

                              p10 200

                              p12 300

                              p13 300

                              104

                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                              ORDER BY 4 desc 8 123

                              105

                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                              106

                              Creacuteation drsquoun Portefeuille Discussion

                              Creacuteation drsquoun Portefeuille Discussion

                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                              107

                              Creacuteation drsquoun Portefeuille Discussion

                              Creacuteation drsquoun Portefeuille Discussion

                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                              108

                              ROLLUP(DB2 amp SQL-Server)

                              ROLLUP(DB2 amp SQL-Server)

                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                              109

                              CUBE(DB2 amp SQL-Server)

                              CUBE(DB2 amp SQL-Server)

                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                              110

                              GROUPING SETS

                              On indique explicitement les groupesndash entre ()

                              le groupe () est constitueacute de toute la table

                              SELECT p sum (qty) as tot-qty from SSP P

                              WHERE SP P = PP AND SP S = SS

                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                              HAVING tot-qty gt 100

                              Problegravemes avec des nuls que lrsquoon verra plus tard

                              111

                              Rollup Cube Grouping Setssous MsAccess

                              Il y en a pas On peut simuler ces manipulations en

                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                              Peut ecirctre laborieux pour le CUBE

                              112

                              ROLLUP

                              Remarquez le laquo null as cityraquo

                              113

                              ROLLUP

                              114

                              ROLLUP

                              Et le CUBE

                              Une solution pour l ambiguiumlteacute

                              de certains nuls

                              115

                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                              Wiley (publ)

                              116

                              Sous-Tables Parameacutetreacutees

                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                              117

                              Sous-Tables Parameacutetreacutees

                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                              118

                              Sous-Tables Parameacutetreacutees

                              119

                              Sous-Tables Parameacutetreacutees

                              120

                              Sous-Tables Parameacutetreacutees

                              121

                              Sous-Tables Parameacutetreacutees

                              122

                              Sous-Tables Parameacutetreacutees

                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                              123

                              Sous-Tables Parameacutetreacutees

                              Exeacutecution autonome

                              124

                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                              ecirctre choisi que dans une ville drsquoun client de Northwind

                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                              hellip

                              125

                              Liste de Choix Multibase

                              bull Requecircte Test-liste-de-choix mdb

                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                              126

                              Liste de Choix MultibaseReacutesultat

                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                              Tregraves bonne question agrave Microsoft

                              148

                              FIN

                              149

                              • SQL Avanceacute 2010
                              • Quoi amp Pourquoi
                              • Slide 3
                              • Synonymes
                              • Noms dattributs
                              • Slide 6
                              • Slide 7
                              • Slide 8
                              • Insertion dans une Vue
                              • Insertion dans une Vue (2)
                              • MAJ drsquoune Vue MsAccess
                              • MAJ drsquoune Vue MsAccess (2)
                              • Suppression dans une Vue MsAccess
                              • MsAccess Leacutegendes
                              • Expressions de valeur
                              • Expressions de valeur (2)
                              • Pour en savoir + sur les attributs dynamiques
                              • UNION et Noms Drsquoattributs
                              • UNION et ORDER BY
                              • ORDER BY et expressions de valeur
                              • ORDER BY et expressions de valeur (2)
                              • Ordre de prioriteacute dopeacuterations
                              • Preacutedicat TOP
                              • Preacutedicat TOP (2)
                              • Clause BETWEEN
                              • Limitations de NOT
                              • ANY et ALL
                              • Injection SQL
                              • Injection SQL (2)
                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                              • Tabulations Croiseacutees
                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                              • Tabulations Croiseacutees (2)
                              • Tabulations Croiseacutees (3)
                              • Tabulations Croiseacutees (4)
                              • Tabulations Croiseacutees (5)
                              • XOR
                              • IMP
                              • Sous-requecirctes
                              • Sous-requecirctes (2)
                              • Sous-requecirctes (3)
                              • Sous-requecirctes (4)
                              • Sous-requecirctes (5)
                              • Sous-requecirctes (6)
                              • Sous-requecirctes (7)
                              • Application aux Probabiliteacutes
                              • Clause FROM imbriqueacutee
                              • Clause FROM imbriqueacutee (2)
                              • Clause FROM imbriqueacutee (3)
                              • Clause FROM imbriqueacutee (4)
                              • Clause FROM imbriqueacutee (5)
                              • Clause FROM imbriqueacutee (6)
                              • Valeurs nulles
                              • Valeurs nulles (2)
                              • Valeurs nulles (3)
                              • Valeurs nulles (4)
                              • Fonctions Scalaires DateTemps
                              • Fonctions Scalaires DateTemps (2)
                              • Fonctions Scalaires DateTemps (3)
                              • Fonctions Scalaires DateTemps (4)
                              • Fonctions Scalaires DateTemps (5)
                              • Fonction Scalaire RND
                              • Fonction Scalaire RND (2)
                              • Fonctions Financiegraveres
                              • Fonctions Financiegraveres (2)
                              • Fonction DDB
                              • Fonction DDB (2)
                              • Fonction PMT
                              • Fonction PMT (2)
                              • Placement agrave taux variable
                              • GROUP BY
                              • LIST Function
                              • LIST Function (2)
                              • GROUP BY avec WHERE
                              • GROUP BY (2)
                              • GROUP BY avec HAVING
                              • T-GROUP BY
                              • T-GROUP BY (2)
                              • T-GROUP BY (3)
                              • T-GROUP BY (4)
                              • Rangs Non-Denses (Non Dense Ranking)
                              • Rangs Non-Denses (Graphique MsAccess)
                              • Rangs Denses (Dense Ranking)
                              • Rangs Denses Graphique MsAccess
                              • Distribution
                              • Reacutesultat
                              • Distribution Cumulative
                              • Reacutesultat (2)
                              • Cateacutegorisation
                              • Cateacutegorisation (2)
                              • Cateacutegorisation (3)
                              • UNION Preacutedictions de Valeurs Inconnues
                              • UNION Preacutediction de Valeurs Inconnues
                              • Tendance
                              • Moyenne Glissante
                              • Moyenne Glissante (2)
                              • Moyenne Glissante (3)
                              • Seacuteries financiegraveres
                              • Seacuteries financiegraveres (2)
                              • Seacuteries financiegraveres (3)
                              • Seacuteries financiegraveres (4)
                              • Creacuteation drsquoun Portefeuille
                              • Creacuteation drsquoun Portefeuille (2)
                              • Creacuteation drsquoun Portefeuille (3)
                              • Creacuteation drsquoun Portefeuille (4)
                              • Creacuteation drsquoun Portefeuille Discussion
                              • Creacuteation drsquoun Portefeuille Discussion (2)
                              • ROLLUP (DB2 amp SQL-Server)
                              • CUBE (DB2 amp SQL-Server)
                              • GROUPING SETS
                              • Rollup Cube Grouping Sets sous MsAccess
                              • Slide 112
                              • Slide 113
                              • Slide 114
                              • Autres Opeacuterations Utiles
                              • Sous-Tables Parameacutetreacutees
                              • Sous-Tables Parameacutetreacutees (2)
                              • Sous-Tables Parameacutetreacutees (3)
                              • Sous-Tables Parameacutetreacutees (4)
                              • Sous-Tables Parameacutetreacutees (5)
                              • Sous-Tables Parameacutetreacutees (6)
                              • Sous-Tables Parameacutetreacutees (7)
                              • Sous-Tables Parameacutetreacutees (8)
                              • Liste de Choix Multibase
                              • Liste de Choix Multibase (2)
                              • Liste de Choix Multibase Reacutesultat
                              • FIN
                              • Slide 149

                                16

                                Expressions de valeur Toutefois sous QBE lattr qty1 peut ecirctre

                                reacutefeacuterenceacutendash donc la requecircte ci-dessus devient leacutegale

                                vous avez dit bizarre Le signe + signifie aussi une concateacutenation pour

                                les attributs du type texte soit a = 2 et b = 3ndash a+b 23

                                Ce qui peu surprendre dans une requecircte agrave paramegravetresndash Texte est le type par deacutefaut du paramegravetre

                                Il faut la clause Parameters a int b int

                                17

                                Pour en savoir + sur les attributs dynamiques

                                Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                                Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                                Voir le site du CERIA

                                18

                                UNION et Noms Drsquoattributs

                                SELECT [s] FROM S

                                Union

                                SELECT [p] FROM p

                                Quel nom drsquoattribut sera dans le reacutesultat

                                Sous MSAccess Dans SQL Server MySQL Oraclehellip

                                19

                                UNION et ORDER BY

                                SELECT [s] FROM S

                                Union

                                SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                                les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                                Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                                apregraves le 2egraveme SELECT

                                20

                                ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                                ORDER BY clauseORDER BY SAL - COMM

                                Exceptions UNION MINUS INTERSECT

                                Cette clause peut reacutefeacuterencer lattribut par position

                                Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                                Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                                MsAccess

                                21

                                ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                                une expression qui nest pas dans SELECT clauseSelect S CITY

                                FROM SORDER BY SNAME STATUS+50

                                exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                                Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                                Essayez

                                SELECT distinct sp[s]

                                FROM sp

                                ORDER BY spqty

                                22

                                Ordre de prioriteacute dopeacuterations

                                1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                [e][e]

                                23

                                Preacutedicat TOP

                                SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                SQL Server eacutequivalent de TOP drsquoAccess

                                SELECT TOP hellip WITH TIES

                                >

                                24

                                Preacutedicat TOP

                                Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                Pour seacutelectionner les tuples 303132

                                LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                >

                                25

                                Clause BETWEEN

                                Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                geacuteneacuteriques ndash contrairement agrave LIKE

                                Quel sera le reacutesultat pour Jones et pourquoi

                                SELECT FROM S where sname between b and J

                                Et si on eacutecrit

                                SELECT FROM S where sname between J and b

                                ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                26

                                Limitations de NOT

                                Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                (SELECT CITY FROM S)

                                Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                Hypothegravese de Monde ouvert

                                27

                                ANY et ALL

                                All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                (SELECT STATUS FROM S WHERE SNAME = BNP)

                                si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                (SELECT STATUS FROM S WHERE SNAME = BNP)

                                28

                                Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                restriction une condition qui annule cette restriction

                                Gros deacutegacircts sur le WEB notammentSELECT

                                FROM S

                                WHERE city=london Or True

                                SQL Injection

                                S SName Status City

                                s1 smith Paris

                                s2 Jones 100 london

                                s3 Blake 30 Paris

                                s4 Clark 10 london

                                s5 Adams 30 Athens

                                29

                                Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                SELECT

                                FROM S

                                WHERE status= 100 Or 200

                                SELECT

                                FROM S

                                WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                SELECT

                                FROM S

                                WHERE city=london Or 100

                                30

                                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                BY et les valeurs individuelles en mecircme temps

                                ndash Impossible avec SQL standard

                                31

                                S Total Qty p1 p2 p3 p4 p5 p6

                                s1 1300 300 200 400 200 100 100

                                s2 700 300 400

                                s3 200 200

                                s4 900 200 300 400

                                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                Tabulations Croiseacutees

                                32

                                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                Transforment les valeurs dattributs en attributsndash Par exemple

                                les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                33

                                S Total Qty p1 p2 p3 p4 p5 p6

                                s1 1300 300 200 400 200 100 100

                                s2 700 300 400

                                s3 200 200

                                s4 900 200 300 400

                                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                Tabulations Croiseacutees

                                34

                                TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                Tabulations Croiseacutees

                                Nouvellescolonnes

                                35

                                La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                Tabulations Croiseacutees

                                36

                                On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                Mais cette clause naffecte pas les calculs des agreacutegats

                                Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                Tabulations Croiseacutees

                                37

                                XORSELECT S[S] SStatus SCity

                                FROM S

                                WHERE Status=10 Xor city=paris

                                bull A noter le traitement du nul dans City

                                38

                                IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                bull A noter le traitement du nul dans City

                                39

                                Sous-requecirctes

                                A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                sous-requecircte

                                SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                40

                                Sous-requecirctes

                                Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                vite ou Livrerait au moins aussi vite mais en quantiteacute

                                plus grande

                                41

                                Sous-requecirctes

                                Skylinendash Tout objet non-domineacute (cacheacute

                                totalement) par un autre

                                SELECT X[s] X[p] qty delay

                                FROM SP X

                                where not exists

                                (select from SP as Y

                                where (Yqty gt= XQty and YDelay lt XDelay or

                                Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                order by X[p]

                                42

                                Sous-requecirctes Reacutesultat

                                s p qty delay

                                s1 p1 300 15

                                s4 p1 200 13

                                s3 p2 400 15

                                s2 p2 300 12

                                s1 p3 400 17

                                s4 p4 300 11

                                s4 p5 400 7

                                s1 p6 100 8

                                s p qty Delay

                                s1 p1 300 15

                                s1 p2 200 12

                                s1 p3 400 17

                                s1 p4 200 11

                                s1 p5 100 7

                                s1 p6 100 8

                                s2 p2 300 12

                                s3 p2 400 15

                                s4 p1 200 13

                                s4 p2 200 15

                                s4 p4 300 11

                                s4 p5 400 7

                                S

                                43

                                Sous-requecirctes

                                On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                SELECT Count() AS TotalQty

                                FROM (select distinct qty from sp)

                                On peut aussi avoir une sous-requecircte dans la clause SELECT

                                SELECT SP[s] SP[p] qty

                                (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                round(qtyTotalQty 3) AS Fraction

                                FROM SP order by [s]

                                44

                                Sous-requecirctes

                                s p qty TotalQty Fraction

                                s1 p1 300 1300 0231

                                s1 p6 100 1300 0077

                                s1 p5 100 1300 0077

                                s1 p4 200 1300 0154

                                s1 p3 400 1300 0308

                                s1 p2 200 1300 0154

                                s2 p2 300 300 1

                                s3 p2 400 400 1

                                s4 p5 400 1100 0364

                                s4 p4 300 1100 0273

                                s4 p2 200 1100 0182

                                bull ReacutesultatSP

                                s p qty

                                s1 p1 300

                                s1 p2 200

                                s1 p3 400

                                s1 p4 200

                                s1 p5 100

                                s1 p6 100

                                s2 p2 300

                                s3 p2 400

                                s4 p1 200

                                s4 p2 200

                                s4 p4 300

                                s4 p5 400

                                45

                                Sous-requecirctesbull En Mode Graphique

                                s p qtyTotalQty

                                Fraction

                                s1 p1 300 1300 0231

                                s1 p6 100 1300 0077

                                s1 p5 100 1300 0077

                                s1 p4 200 1300 0154

                                s1 p3 400 1300 0308

                                s1 p2 200 1300 0154

                                s2 p2 300 300 1

                                s3 p2 400 400 1

                                s4 p5 400 1100 0364

                                s4 p4 300 1100 0273

                                s4 p2 200 1100 0182

                                46

                                Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                SELECT (select count(qty) from SP

                                where qty gt= [seuil svp ]) count() as reacutesultat

                                FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                probabiliteacute conditionnelle

                                47

                                Clause FROM imbriqueacutee

                                Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                Agrave essayer

                                48

                                Clause FROM imbriqueacuteePossibiliteacutes

                                ndash Agreacutegations par-dessus UNION ou UNION ALL

                                ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                MsAccess

                                ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                Mais la reacutefeacuterence au nom de la requecircte OK

                                49

                                Clause FROM imbriqueacutee

                                SELECT sum(weight) AS [poids-total]

                                FROM (SELECT weight pcity FROM P WHERE City like l

                                UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                50

                                Clause FROM imbriqueacutee

                                select avg(moy1) as [moyenne-des-moyennes]

                                FROM

                                (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                51

                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                52

                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                totaux partiels et total geacuteneacuteral

                                total_Id TotalQty

                                s1 1300

                                s2 300

                                s3 400

                                s4 400

                                total Geacuteneacuteral

                                2400

                                53

                                Valeurs nulles

                                Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                Non WHERE HAVING GROUP BY (rel 1)

                                Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                MsAccess Oui DISTINCT Autres clauses

                                54

                                Valeurs nulles Si x est nul et y nrsquoest pas alors

                                1 x gt y est vrai ou faux

                                2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                SELECT FROM S WHERE CITY =Paris

                                UNION

                                SELECT FROM S WHERE NOT CITY = Paris

                                est toujours pourquoi faire simpleSELECT FROM S

                                si on peut faire compliqueacute

                                55

                                Valeurs nullesValeurs nulles

                                SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                56

                                Valeurs nulles

                                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                LOG (nul) -gt Error A voir cas par cas

                                57

                                Fonctions Scalaires DateTemps

                                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                58

                                Fonctions Scalaires DateTemps

                                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                weekday(day(now())-1) AS [day]FROM S

                                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                59

                                Fonctions Scalaires DateTemps

                                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                Interval Explanation

                                Yyyy Year

                                q Quarter

                                m Month

                                y Day of year

                                d Day

                                w Weekday

                                ww Week

                                h Hour

                                n Minute

                                s Second

                                60

                                Fonctions Scalaires DateTemps

                                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                Test DateDiff

                                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                61

                                Fonctions Scalaires DateTemps

                                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                Liste tous les tuples ougrave DateV est de Janvier 2009

                                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                62

                                Fonction Scalaire RND

                                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                FROM SPORDER BY rnd(qty) DESC

                                echantillon s rank

                                s1 502628087997437E-02

                                s4 0518015921115875

                                s3 075702953338623

                                63

                                Fonction Scalaire RND

                                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                FROM SPORDER BY rnd(qty) DESC

                                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                Votre commentaire ici

                                64

                                Fonctions Financiegraveres

                                Fonction DDB Calcule lamortissement deacutegressif

                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                65

                                Fonctions Financiegraveres

                                Fonction DDB Calcule lamortissement deacutegressif

                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                66

                                Fonction DDB

                                insert into DDB (cost salvage life factor amortiss period)

                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                DDB(cost salvage life period factor) as amortiss period

                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                67

                                Fonction DDB

                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                68

                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                nombres neacutegatifs

                                Fonction PMT

                                69

                                Fonction PMT

                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                Fonction PMT calcul dannuiteacute demprunt

                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                preacutesentevaleur_payeacutee surprime

                                -16049 005 20 200000 -320980 -120980

                                70

                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                Et les nuls que log ne supporte pas

                                Anneacutee relative

                                Taux

                                1 4

                                2 4

                                3 3

                                4 5

                                5 5

                                Voir + dans le livre laquo SQL Design Patterns raquo

                                71

                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                est eacutequivalente agrave

                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                WHERE XP = SPP) FROM SP

                                Testez

                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                72

                                LIST Function La requecircte

                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                Comme les tabulations croiseacutees

                                ndash Mais en + simple

                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                ndash En mono attribut (2004)

                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                sous-formulaires

                                73

                                LIST Function

                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                74

                                GROUP BY avec WHERE

                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                75

                                GROUP BY

                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                Pourquoi

                                76

                                GROUP BY avec HAVING

                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                77

                                T-GROUP BY Proposeacute pour SQL

                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                Le rocircle de -join par rapport agrave equi-join

                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                INT(AVG(QTY)) AS QTY2FROM SP

                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                78

                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                FROM SP Vrai ou Faux

                                79

                                T-GROUP BY

                                Reacutesultat

                                part avg_qty_other_parts part_avg_qty

                                p1 250 300

                                p2 262 250

                                p3 245 400

                                p4 260 250

                                p5 260 250

                                p6 272 100

                                80

                                T-GROUP BY

                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                81

                                Rangs Non-Denses(Non Dense Ranking)

                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                s p qtyND-rank

                                s4 p5 400 1

                                s3 p2 400 1

                                s1 p3 400 1

                                s4 p4 300 4

                                s2 p2 300 4

                                s1 p1 300 4

                                s4 p2 200 7

                                s1 p4 200 7

                                s1 p2 200 7

                                s4 p1 200 7

                                s1 p6 100 11

                                s1 p5 100 11

                                82

                                Rangs Non-Denses(Graphique MsAccess)

                                s p qty ND-rank

                                s4 p5 400 1

                                s3 p2 400 1

                                s1 p3 400 1

                                s4 p4 300 4

                                s2 p2 300 4

                                s1 p1 300 4

                                s4 p2 200 7

                                s1 p4 200 7

                                s1 p2 200 7

                                s4 p1 200 7

                                s1 p6 100 11

                                s1 p5 100 11

                                83

                                Rangs Denses(Dense Ranking)

                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                s p qtyD-rank

                                s1 p3 400 1

                                s3 p2 400 1

                                s4 p5 400 1

                                s1 p1 300 2

                                s2 p2 300 2

                                s4 p4 300 2

                                s1 p4 200 3

                                s1 p2 200 3

                                s4 p2 200 3

                                s4 p1 200 3

                                s1 p6 100 4

                                s1 p5 100 4

                                84

                                Rangs DensesGraphique MsAccess

                                s p qty D-rank

                                s1 p3 400 1

                                s3 p2 400 1

                                s4 p5 400 1

                                s1 p1 300 2

                                s2 p2 300 2

                                s4 p4 300 2

                                s1 p4 200 3

                                s1 p2 200 3

                                s4 p2 200 3

                                s4 p1 200 3

                                s1 p6 100 4

                                s1 p5 100 4

                                85

                                Distribution

                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                86

                                Reacutesultat

                                s Distribution

                                s1 0419

                                s2 0097

                                s3 0129

                                s4 0355

                                87

                                Distribution Cumulative

                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                FROM SP

                                ORDER BY SP[s]

                                88

                                Reacutesultat

                                sDistribution Cumuleacutee

                                s1 0419

                                s2 0516

                                s3 0645

                                s4 1

                                89

                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                - Un outil - Fonction scalaire IIF de SQL Access

                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                - On peut alternativement utiliser UNION ou UNION ALL

                                90

                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                IIf([status]lt30OKgood) AS IIfSimple

                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                FROM S

                                GROUP BY S[S] SSName SStatus SCity

                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                s1 Smith Paris good good

                                s2 Jones 100 london good VGood

                                s3 Blake 30 Paris good good

                                s4 Clark 10 london OK OK

                                s5 Adams 30 Athens good good

                                bull Notez le traitement du null

                                91

                                Cateacutegorisation Emploi alternatif drsquoUNION

                                SELECT Ppname weight Very Heavy as Warning

                                FROM P where weight gt 13

                                union

                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                UNION

                                select Ppname weight Light as warn from p where weight lt 10

                                ORDER BY warning DESC weight DESC

                                pname weight Warning

                                cam 19 Very Heavy

                                cog 19 Very Heavy

                                bolt 17 Very Heavy

                                nut 14 Very Heavy

                                screw 14 Very Heavy

                                nut 14 Quite Heavy

                                screw 14 Quite Heavy

                                screw 12 Quite Heavy

                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                92

                                UNIONPreacutedictions de Valeurs Inconnues

                                On considegravere AVG(Qty1) pour Qty

                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                SP

                                s p qtyQty1

                                s1 p1 300 400

                                s1 p2 200

                                s1 p3 400 600

                                s1 p4 200 300

                                s1 p5 100

                                s1 p6 100 200

                                s2 p2 300 500

                                s3 p2 400

                                s4 p1 200 100

                                s4 p2 200

                                s4 p4 300

                                s4 p5 400

                                93

                                UNIONPreacutediction de Valeurs Inconnues

                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                SP

                                s p qtyQty1

                                s1 p1 300 400

                                s1 p2 200

                                s1 p3 400 600

                                s1 p4 200 300

                                s1 p5 100

                                s1 p6 100 200

                                s2 p2 300 500

                                s3 p2 400

                                s4 p1 200 100

                                s4 p2 200

                                s4 p4 300

                                s4 p5 400

                                qty for partpredicted or

                                unknown Qty1

                                100 p5

                                100 predicted value 200

                                200 p2

                                200 predicted value 200

                                300 p4

                                300 predicted value 450

                                400 p2

                                400 p5

                                400 predicted value 600

                                94

                                Tendance

                                qty Qty1

                                100 200

                                200 300

                                300 400

                                400 600

                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                SP est supposeacute avec la DF entre Qty et Qty1

                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                Graph 3D avec Qty en abscisses

                                95

                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                30102008 120 27102008 4

                                25102008 131 22102008 4

                                23102008 127 20102008 4

                                17102008 269 14102008 4

                                15102008 60 12102008 4

                                11102008 295 08102008 4

                                09102008 340 06102008 4

                                08102008 324 05102008 4

                                06102008 315 03102008 4

                                96

                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                Graphique avec une info-bulle

                                97

                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                glissantes

                                bull CSUM (Cumulative (Running) Sums)

                                bull MAVG

                                bull MSUM

                                bull MDIFF

                                bull Voir Teradata + loin

                                98

                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                99

                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                Entiers est une table aux avec la colonne de12hellip10

                                100

                                Seacuteries financiegraveres

                                capital taux nval apregraves n ans

                                taux1val1 apregraves n ans

                                GainAbs GainRel

                                100 005 1 105 006 106 1 1

                                100 005 2 110 006 112 2 2

                                100 005 3 115 006 119 4 4

                                100 005 4 121 006 126 5 5

                                100 005 5 127 006 133 6 6

                                100 005 6 134 006 141 7 7

                                100 005 7 140 006 150 10 10

                                100 005 8 147 006 159 12 12

                                100 005 9 155 006 168 13 13

                                100 005 10 162 006 179 17 17

                                100 005 11 171 006 189 18 18

                                100 005 12 179 006 201 22 22

                                100 005 13 188 006 213 25 25

                                100 005 14 197 006 226 29 29

                                100 005 15 207 006 239 32 32

                                100 005 16 218 006 254 36 36

                                100 005 17 229 006 269 40 40

                                100 005 18 240 006 285 45 45

                                100 005 19 252 006 302 50 50

                                100 005 20 265 006 320 55 55

                                101

                                Seacuteries financiegraveres

                                102

                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                financiers de la table Produits

                                bull Dans la limite L de la somme donneacutee

                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                bull En ordre descendant de prix

                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                bull Plusieurs actionshellip

                                103

                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                P prix

                                p3 200

                                p1 200

                                p2 400

                                p3 200

                                p4 100

                                p6 100

                                p5 300

                                p8 300

                                p7 400

                                p10 200

                                p12 300

                                p13 300

                                104

                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                ORDER BY 4 desc 8 123

                                105

                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                106

                                Creacuteation drsquoun Portefeuille Discussion

                                Creacuteation drsquoun Portefeuille Discussion

                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                107

                                Creacuteation drsquoun Portefeuille Discussion

                                Creacuteation drsquoun Portefeuille Discussion

                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                108

                                ROLLUP(DB2 amp SQL-Server)

                                ROLLUP(DB2 amp SQL-Server)

                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                109

                                CUBE(DB2 amp SQL-Server)

                                CUBE(DB2 amp SQL-Server)

                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                110

                                GROUPING SETS

                                On indique explicitement les groupesndash entre ()

                                le groupe () est constitueacute de toute la table

                                SELECT p sum (qty) as tot-qty from SSP P

                                WHERE SP P = PP AND SP S = SS

                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                HAVING tot-qty gt 100

                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                111

                                Rollup Cube Grouping Setssous MsAccess

                                Il y en a pas On peut simuler ces manipulations en

                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                Peut ecirctre laborieux pour le CUBE

                                112

                                ROLLUP

                                Remarquez le laquo null as cityraquo

                                113

                                ROLLUP

                                114

                                ROLLUP

                                Et le CUBE

                                Une solution pour l ambiguiumlteacute

                                de certains nuls

                                115

                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                Wiley (publ)

                                116

                                Sous-Tables Parameacutetreacutees

                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                117

                                Sous-Tables Parameacutetreacutees

                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                118

                                Sous-Tables Parameacutetreacutees

                                119

                                Sous-Tables Parameacutetreacutees

                                120

                                Sous-Tables Parameacutetreacutees

                                121

                                Sous-Tables Parameacutetreacutees

                                122

                                Sous-Tables Parameacutetreacutees

                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                123

                                Sous-Tables Parameacutetreacutees

                                Exeacutecution autonome

                                124

                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                hellip

                                125

                                Liste de Choix Multibase

                                bull Requecircte Test-liste-de-choix mdb

                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                126

                                Liste de Choix MultibaseReacutesultat

                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                Tregraves bonne question agrave Microsoft

                                148

                                FIN

                                149

                                • SQL Avanceacute 2010
                                • Quoi amp Pourquoi
                                • Slide 3
                                • Synonymes
                                • Noms dattributs
                                • Slide 6
                                • Slide 7
                                • Slide 8
                                • Insertion dans une Vue
                                • Insertion dans une Vue (2)
                                • MAJ drsquoune Vue MsAccess
                                • MAJ drsquoune Vue MsAccess (2)
                                • Suppression dans une Vue MsAccess
                                • MsAccess Leacutegendes
                                • Expressions de valeur
                                • Expressions de valeur (2)
                                • Pour en savoir + sur les attributs dynamiques
                                • UNION et Noms Drsquoattributs
                                • UNION et ORDER BY
                                • ORDER BY et expressions de valeur
                                • ORDER BY et expressions de valeur (2)
                                • Ordre de prioriteacute dopeacuterations
                                • Preacutedicat TOP
                                • Preacutedicat TOP (2)
                                • Clause BETWEEN
                                • Limitations de NOT
                                • ANY et ALL
                                • Injection SQL
                                • Injection SQL (2)
                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                • Tabulations Croiseacutees
                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                • Tabulations Croiseacutees (2)
                                • Tabulations Croiseacutees (3)
                                • Tabulations Croiseacutees (4)
                                • Tabulations Croiseacutees (5)
                                • XOR
                                • IMP
                                • Sous-requecirctes
                                • Sous-requecirctes (2)
                                • Sous-requecirctes (3)
                                • Sous-requecirctes (4)
                                • Sous-requecirctes (5)
                                • Sous-requecirctes (6)
                                • Sous-requecirctes (7)
                                • Application aux Probabiliteacutes
                                • Clause FROM imbriqueacutee
                                • Clause FROM imbriqueacutee (2)
                                • Clause FROM imbriqueacutee (3)
                                • Clause FROM imbriqueacutee (4)
                                • Clause FROM imbriqueacutee (5)
                                • Clause FROM imbriqueacutee (6)
                                • Valeurs nulles
                                • Valeurs nulles (2)
                                • Valeurs nulles (3)
                                • Valeurs nulles (4)
                                • Fonctions Scalaires DateTemps
                                • Fonctions Scalaires DateTemps (2)
                                • Fonctions Scalaires DateTemps (3)
                                • Fonctions Scalaires DateTemps (4)
                                • Fonctions Scalaires DateTemps (5)
                                • Fonction Scalaire RND
                                • Fonction Scalaire RND (2)
                                • Fonctions Financiegraveres
                                • Fonctions Financiegraveres (2)
                                • Fonction DDB
                                • Fonction DDB (2)
                                • Fonction PMT
                                • Fonction PMT (2)
                                • Placement agrave taux variable
                                • GROUP BY
                                • LIST Function
                                • LIST Function (2)
                                • GROUP BY avec WHERE
                                • GROUP BY (2)
                                • GROUP BY avec HAVING
                                • T-GROUP BY
                                • T-GROUP BY (2)
                                • T-GROUP BY (3)
                                • T-GROUP BY (4)
                                • Rangs Non-Denses (Non Dense Ranking)
                                • Rangs Non-Denses (Graphique MsAccess)
                                • Rangs Denses (Dense Ranking)
                                • Rangs Denses Graphique MsAccess
                                • Distribution
                                • Reacutesultat
                                • Distribution Cumulative
                                • Reacutesultat (2)
                                • Cateacutegorisation
                                • Cateacutegorisation (2)
                                • Cateacutegorisation (3)
                                • UNION Preacutedictions de Valeurs Inconnues
                                • UNION Preacutediction de Valeurs Inconnues
                                • Tendance
                                • Moyenne Glissante
                                • Moyenne Glissante (2)
                                • Moyenne Glissante (3)
                                • Seacuteries financiegraveres
                                • Seacuteries financiegraveres (2)
                                • Seacuteries financiegraveres (3)
                                • Seacuteries financiegraveres (4)
                                • Creacuteation drsquoun Portefeuille
                                • Creacuteation drsquoun Portefeuille (2)
                                • Creacuteation drsquoun Portefeuille (3)
                                • Creacuteation drsquoun Portefeuille (4)
                                • Creacuteation drsquoun Portefeuille Discussion
                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                • ROLLUP (DB2 amp SQL-Server)
                                • CUBE (DB2 amp SQL-Server)
                                • GROUPING SETS
                                • Rollup Cube Grouping Sets sous MsAccess
                                • Slide 112
                                • Slide 113
                                • Slide 114
                                • Autres Opeacuterations Utiles
                                • Sous-Tables Parameacutetreacutees
                                • Sous-Tables Parameacutetreacutees (2)
                                • Sous-Tables Parameacutetreacutees (3)
                                • Sous-Tables Parameacutetreacutees (4)
                                • Sous-Tables Parameacutetreacutees (5)
                                • Sous-Tables Parameacutetreacutees (6)
                                • Sous-Tables Parameacutetreacutees (7)
                                • Sous-Tables Parameacutetreacutees (8)
                                • Liste de Choix Multibase
                                • Liste de Choix Multibase (2)
                                • Liste de Choix Multibase Reacutesultat
                                • FIN
                                • Slide 149

                                  17

                                  Pour en savoir + sur les attributs dynamiques

                                  Litwin W Vigier Ph Dynamic attributes in the multidatabase system MRDSM IEEE-COMPDEC (Feb 1986)

                                  Litwin W Vigier Ph New Functions for Dynamic Attributes in the Multidatabase System MRDSM Honeywell Large Systems Userss Forum HLSUA XIV New Orleans 1987 467-475

                                  Voir le site du CERIA

                                  18

                                  UNION et Noms Drsquoattributs

                                  SELECT [s] FROM S

                                  Union

                                  SELECT [p] FROM p

                                  Quel nom drsquoattribut sera dans le reacutesultat

                                  Sous MSAccess Dans SQL Server MySQL Oraclehellip

                                  19

                                  UNION et ORDER BY

                                  SELECT [s] FROM S

                                  Union

                                  SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                                  les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                                  Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                                  apregraves le 2egraveme SELECT

                                  20

                                  ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                                  ORDER BY clauseORDER BY SAL - COMM

                                  Exceptions UNION MINUS INTERSECT

                                  Cette clause peut reacutefeacuterencer lattribut par position

                                  Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                                  Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                                  MsAccess

                                  21

                                  ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                                  une expression qui nest pas dans SELECT clauseSelect S CITY

                                  FROM SORDER BY SNAME STATUS+50

                                  exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                                  Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                                  Essayez

                                  SELECT distinct sp[s]

                                  FROM sp

                                  ORDER BY spqty

                                  22

                                  Ordre de prioriteacute dopeacuterations

                                  1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                  2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                  [e][e]

                                  23

                                  Preacutedicat TOP

                                  SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                  SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                  SQL Server eacutequivalent de TOP drsquoAccess

                                  SELECT TOP hellip WITH TIES

                                  >

                                  24

                                  Preacutedicat TOP

                                  Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                  La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                  Pour seacutelectionner les tuples 303132

                                  LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                  Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                  >

                                  25

                                  Clause BETWEEN

                                  Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                  geacuteneacuteriques ndash contrairement agrave LIKE

                                  Quel sera le reacutesultat pour Jones et pourquoi

                                  SELECT FROM S where sname between b and J

                                  Et si on eacutecrit

                                  SELECT FROM S where sname between J and b

                                  ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                  26

                                  Limitations de NOT

                                  Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                  (SELECT CITY FROM S)

                                  Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                  Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                  Hypothegravese de Monde ouvert

                                  27

                                  ANY et ALL

                                  All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                  (SELECT STATUS FROM S WHERE SNAME = BNP)

                                  si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                  si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                  Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                  (SELECT STATUS FROM S WHERE SNAME = BNP)

                                  28

                                  Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                  restriction une condition qui annule cette restriction

                                  Gros deacutegacircts sur le WEB notammentSELECT

                                  FROM S

                                  WHERE city=london Or True

                                  SQL Injection

                                  S SName Status City

                                  s1 smith Paris

                                  s2 Jones 100 london

                                  s3 Blake 30 Paris

                                  s4 Clark 10 london

                                  s5 Adams 30 Athens

                                  29

                                  Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                  True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                  SELECT

                                  FROM S

                                  WHERE status= 100 Or 200

                                  SELECT

                                  FROM S

                                  WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                  SELECT

                                  FROM S

                                  WHERE city=london Or 100

                                  30

                                  Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                  Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                  BY et les valeurs individuelles en mecircme temps

                                  ndash Impossible avec SQL standard

                                  31

                                  S Total Qty p1 p2 p3 p4 p5 p6

                                  s1 1300 300 200 400 200 100 100

                                  s2 700 300 400

                                  s3 200 200

                                  s4 900 200 300 400

                                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                  Tabulations Croiseacutees

                                  32

                                  Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                  Transforment les valeurs dattributs en attributsndash Par exemple

                                  les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                  les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                  33

                                  S Total Qty p1 p2 p3 p4 p5 p6

                                  s1 1300 300 200 400 200 100 100

                                  s2 700 300 400

                                  s3 200 200

                                  s4 900 200 300 400

                                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                  Tabulations Croiseacutees

                                  34

                                  TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                  Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                  Tabulations Croiseacutees

                                  Nouvellescolonnes

                                  35

                                  La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                  On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                  Tabulations Croiseacutees

                                  36

                                  On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                  Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                  On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                  Mais cette clause naffecte pas les calculs des agreacutegats

                                  Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                  Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                  Tabulations Croiseacutees

                                  37

                                  XORSELECT S[S] SStatus SCity

                                  FROM S

                                  WHERE Status=10 Xor city=paris

                                  bull A noter le traitement du nul dans City

                                  38

                                  IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                  bull A noter le traitement du nul dans City

                                  39

                                  Sous-requecirctes

                                  A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                  clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                  rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                  sous-requecircte

                                  SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                  40

                                  Sous-requecirctes

                                  Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                  laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                  vite ou Livrerait au moins aussi vite mais en quantiteacute

                                  plus grande

                                  41

                                  Sous-requecirctes

                                  Skylinendash Tout objet non-domineacute (cacheacute

                                  totalement) par un autre

                                  SELECT X[s] X[p] qty delay

                                  FROM SP X

                                  where not exists

                                  (select from SP as Y

                                  where (Yqty gt= XQty and YDelay lt XDelay or

                                  Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                  order by X[p]

                                  42

                                  Sous-requecirctes Reacutesultat

                                  s p qty delay

                                  s1 p1 300 15

                                  s4 p1 200 13

                                  s3 p2 400 15

                                  s2 p2 300 12

                                  s1 p3 400 17

                                  s4 p4 300 11

                                  s4 p5 400 7

                                  s1 p6 100 8

                                  s p qty Delay

                                  s1 p1 300 15

                                  s1 p2 200 12

                                  s1 p3 400 17

                                  s1 p4 200 11

                                  s1 p5 100 7

                                  s1 p6 100 8

                                  s2 p2 300 12

                                  s3 p2 400 15

                                  s4 p1 200 13

                                  s4 p2 200 15

                                  s4 p4 300 11

                                  s4 p5 400 7

                                  S

                                  43

                                  Sous-requecirctes

                                  On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                  SELECT Count() AS TotalQty

                                  FROM (select distinct qty from sp)

                                  On peut aussi avoir une sous-requecircte dans la clause SELECT

                                  SELECT SP[s] SP[p] qty

                                  (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                  round(qtyTotalQty 3) AS Fraction

                                  FROM SP order by [s]

                                  44

                                  Sous-requecirctes

                                  s p qty TotalQty Fraction

                                  s1 p1 300 1300 0231

                                  s1 p6 100 1300 0077

                                  s1 p5 100 1300 0077

                                  s1 p4 200 1300 0154

                                  s1 p3 400 1300 0308

                                  s1 p2 200 1300 0154

                                  s2 p2 300 300 1

                                  s3 p2 400 400 1

                                  s4 p5 400 1100 0364

                                  s4 p4 300 1100 0273

                                  s4 p2 200 1100 0182

                                  bull ReacutesultatSP

                                  s p qty

                                  s1 p1 300

                                  s1 p2 200

                                  s1 p3 400

                                  s1 p4 200

                                  s1 p5 100

                                  s1 p6 100

                                  s2 p2 300

                                  s3 p2 400

                                  s4 p1 200

                                  s4 p2 200

                                  s4 p4 300

                                  s4 p5 400

                                  45

                                  Sous-requecirctesbull En Mode Graphique

                                  s p qtyTotalQty

                                  Fraction

                                  s1 p1 300 1300 0231

                                  s1 p6 100 1300 0077

                                  s1 p5 100 1300 0077

                                  s1 p4 200 1300 0154

                                  s1 p3 400 1300 0308

                                  s1 p2 200 1300 0154

                                  s2 p2 300 300 1

                                  s3 p2 400 400 1

                                  s4 p5 400 1100 0364

                                  s4 p4 300 1100 0273

                                  s4 p2 200 1100 0182

                                  46

                                  Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                  SELECT (select count(qty) from SP

                                  where qty gt= [seuil svp ]) count() as reacutesultat

                                  FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                  probabiliteacute conditionnelle

                                  47

                                  Clause FROM imbriqueacutee

                                  Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                  Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                  Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                  Agrave essayer

                                  48

                                  Clause FROM imbriqueacuteePossibiliteacutes

                                  ndash Agreacutegations par-dessus UNION ou UNION ALL

                                  ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                  MsAccess

                                  ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                  Mais la reacutefeacuterence au nom de la requecircte OK

                                  49

                                  Clause FROM imbriqueacutee

                                  SELECT sum(weight) AS [poids-total]

                                  FROM (SELECT weight pcity FROM P WHERE City like l

                                  UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                  50

                                  Clause FROM imbriqueacutee

                                  select avg(moy1) as [moyenne-des-moyennes]

                                  FROM

                                  (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                  UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                  51

                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                  select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                  52

                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                  totaux partiels et total geacuteneacuteral

                                  total_Id TotalQty

                                  s1 1300

                                  s2 300

                                  s3 400

                                  s4 400

                                  total Geacuteneacuteral

                                  2400

                                  53

                                  Valeurs nulles

                                  Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                  En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                  DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                  Non WHERE HAVING GROUP BY (rel 1)

                                  Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                  MsAccess Oui DISTINCT Autres clauses

                                  54

                                  Valeurs nulles Si x est nul et y nrsquoest pas alors

                                  1 x gt y est vrai ou faux

                                  2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                  DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                  SELECT FROM S WHERE CITY =Paris

                                  UNION

                                  SELECT FROM S WHERE NOT CITY = Paris

                                  est toujours pourquoi faire simpleSELECT FROM S

                                  si on peut faire compliqueacute

                                  55

                                  Valeurs nullesValeurs nulles

                                  SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                  SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                  Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                  56

                                  Valeurs nulles

                                  Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                  LOG (nul) -gt Error A voir cas par cas

                                  57

                                  Fonctions Scalaires DateTemps

                                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                  58

                                  Fonctions Scalaires DateTemps

                                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                  weekday(day(now())-1) AS [day]FROM S

                                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                  59

                                  Fonctions Scalaires DateTemps

                                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                  Interval Explanation

                                  Yyyy Year

                                  q Quarter

                                  m Month

                                  y Day of year

                                  d Day

                                  w Weekday

                                  ww Week

                                  h Hour

                                  n Minute

                                  s Second

                                  60

                                  Fonctions Scalaires DateTemps

                                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                  Test DateDiff

                                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                  61

                                  Fonctions Scalaires DateTemps

                                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                  Liste tous les tuples ougrave DateV est de Janvier 2009

                                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                  62

                                  Fonction Scalaire RND

                                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                  FROM SPORDER BY rnd(qty) DESC

                                  echantillon s rank

                                  s1 502628087997437E-02

                                  s4 0518015921115875

                                  s3 075702953338623

                                  63

                                  Fonction Scalaire RND

                                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                  FROM SPORDER BY rnd(qty) DESC

                                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                  Votre commentaire ici

                                  64

                                  Fonctions Financiegraveres

                                  Fonction DDB Calcule lamortissement deacutegressif

                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                  65

                                  Fonctions Financiegraveres

                                  Fonction DDB Calcule lamortissement deacutegressif

                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                  66

                                  Fonction DDB

                                  insert into DDB (cost salvage life factor amortiss period)

                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                  DDB(cost salvage life period factor) as amortiss period

                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                  67

                                  Fonction DDB

                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                  68

                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                  nombres neacutegatifs

                                  Fonction PMT

                                  69

                                  Fonction PMT

                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                  Fonction PMT calcul dannuiteacute demprunt

                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                  preacutesentevaleur_payeacutee surprime

                                  -16049 005 20 200000 -320980 -120980

                                  70

                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                  Et les nuls que log ne supporte pas

                                  Anneacutee relative

                                  Taux

                                  1 4

                                  2 4

                                  3 3

                                  4 5

                                  5 5

                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                  71

                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                  est eacutequivalente agrave

                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                  WHERE XP = SPP) FROM SP

                                  Testez

                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                  72

                                  LIST Function La requecircte

                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                  Comme les tabulations croiseacutees

                                  ndash Mais en + simple

                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                  ndash En mono attribut (2004)

                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                  sous-formulaires

                                  73

                                  LIST Function

                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                  74

                                  GROUP BY avec WHERE

                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                  75

                                  GROUP BY

                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                  Pourquoi

                                  76

                                  GROUP BY avec HAVING

                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                  77

                                  T-GROUP BY Proposeacute pour SQL

                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                  Le rocircle de -join par rapport agrave equi-join

                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                  INT(AVG(QTY)) AS QTY2FROM SP

                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                  78

                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                  FROM SP Vrai ou Faux

                                  79

                                  T-GROUP BY

                                  Reacutesultat

                                  part avg_qty_other_parts part_avg_qty

                                  p1 250 300

                                  p2 262 250

                                  p3 245 400

                                  p4 260 250

                                  p5 260 250

                                  p6 272 100

                                  80

                                  T-GROUP BY

                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                  81

                                  Rangs Non-Denses(Non Dense Ranking)

                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                  s p qtyND-rank

                                  s4 p5 400 1

                                  s3 p2 400 1

                                  s1 p3 400 1

                                  s4 p4 300 4

                                  s2 p2 300 4

                                  s1 p1 300 4

                                  s4 p2 200 7

                                  s1 p4 200 7

                                  s1 p2 200 7

                                  s4 p1 200 7

                                  s1 p6 100 11

                                  s1 p5 100 11

                                  82

                                  Rangs Non-Denses(Graphique MsAccess)

                                  s p qty ND-rank

                                  s4 p5 400 1

                                  s3 p2 400 1

                                  s1 p3 400 1

                                  s4 p4 300 4

                                  s2 p2 300 4

                                  s1 p1 300 4

                                  s4 p2 200 7

                                  s1 p4 200 7

                                  s1 p2 200 7

                                  s4 p1 200 7

                                  s1 p6 100 11

                                  s1 p5 100 11

                                  83

                                  Rangs Denses(Dense Ranking)

                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                  s p qtyD-rank

                                  s1 p3 400 1

                                  s3 p2 400 1

                                  s4 p5 400 1

                                  s1 p1 300 2

                                  s2 p2 300 2

                                  s4 p4 300 2

                                  s1 p4 200 3

                                  s1 p2 200 3

                                  s4 p2 200 3

                                  s4 p1 200 3

                                  s1 p6 100 4

                                  s1 p5 100 4

                                  84

                                  Rangs DensesGraphique MsAccess

                                  s p qty D-rank

                                  s1 p3 400 1

                                  s3 p2 400 1

                                  s4 p5 400 1

                                  s1 p1 300 2

                                  s2 p2 300 2

                                  s4 p4 300 2

                                  s1 p4 200 3

                                  s1 p2 200 3

                                  s4 p2 200 3

                                  s4 p1 200 3

                                  s1 p6 100 4

                                  s1 p5 100 4

                                  85

                                  Distribution

                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                  86

                                  Reacutesultat

                                  s Distribution

                                  s1 0419

                                  s2 0097

                                  s3 0129

                                  s4 0355

                                  87

                                  Distribution Cumulative

                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                  FROM SP

                                  ORDER BY SP[s]

                                  88

                                  Reacutesultat

                                  sDistribution Cumuleacutee

                                  s1 0419

                                  s2 0516

                                  s3 0645

                                  s4 1

                                  89

                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                  - Un outil - Fonction scalaire IIF de SQL Access

                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                  - On peut alternativement utiliser UNION ou UNION ALL

                                  90

                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                  IIf([status]lt30OKgood) AS IIfSimple

                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                  FROM S

                                  GROUP BY S[S] SSName SStatus SCity

                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                  s1 Smith Paris good good

                                  s2 Jones 100 london good VGood

                                  s3 Blake 30 Paris good good

                                  s4 Clark 10 london OK OK

                                  s5 Adams 30 Athens good good

                                  bull Notez le traitement du null

                                  91

                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                  SELECT Ppname weight Very Heavy as Warning

                                  FROM P where weight gt 13

                                  union

                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                  UNION

                                  select Ppname weight Light as warn from p where weight lt 10

                                  ORDER BY warning DESC weight DESC

                                  pname weight Warning

                                  cam 19 Very Heavy

                                  cog 19 Very Heavy

                                  bolt 17 Very Heavy

                                  nut 14 Very Heavy

                                  screw 14 Very Heavy

                                  nut 14 Quite Heavy

                                  screw 14 Quite Heavy

                                  screw 12 Quite Heavy

                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                  92

                                  UNIONPreacutedictions de Valeurs Inconnues

                                  On considegravere AVG(Qty1) pour Qty

                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                  SP

                                  s p qtyQty1

                                  s1 p1 300 400

                                  s1 p2 200

                                  s1 p3 400 600

                                  s1 p4 200 300

                                  s1 p5 100

                                  s1 p6 100 200

                                  s2 p2 300 500

                                  s3 p2 400

                                  s4 p1 200 100

                                  s4 p2 200

                                  s4 p4 300

                                  s4 p5 400

                                  93

                                  UNIONPreacutediction de Valeurs Inconnues

                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                  SP

                                  s p qtyQty1

                                  s1 p1 300 400

                                  s1 p2 200

                                  s1 p3 400 600

                                  s1 p4 200 300

                                  s1 p5 100

                                  s1 p6 100 200

                                  s2 p2 300 500

                                  s3 p2 400

                                  s4 p1 200 100

                                  s4 p2 200

                                  s4 p4 300

                                  s4 p5 400

                                  qty for partpredicted or

                                  unknown Qty1

                                  100 p5

                                  100 predicted value 200

                                  200 p2

                                  200 predicted value 200

                                  300 p4

                                  300 predicted value 450

                                  400 p2

                                  400 p5

                                  400 predicted value 600

                                  94

                                  Tendance

                                  qty Qty1

                                  100 200

                                  200 300

                                  300 400

                                  400 600

                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                  SP est supposeacute avec la DF entre Qty et Qty1

                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                  Graph 3D avec Qty en abscisses

                                  95

                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                  30102008 120 27102008 4

                                  25102008 131 22102008 4

                                  23102008 127 20102008 4

                                  17102008 269 14102008 4

                                  15102008 60 12102008 4

                                  11102008 295 08102008 4

                                  09102008 340 06102008 4

                                  08102008 324 05102008 4

                                  06102008 315 03102008 4

                                  96

                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                  Graphique avec une info-bulle

                                  97

                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                  glissantes

                                  bull CSUM (Cumulative (Running) Sums)

                                  bull MAVG

                                  bull MSUM

                                  bull MDIFF

                                  bull Voir Teradata + loin

                                  98

                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                  99

                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                  Entiers est une table aux avec la colonne de12hellip10

                                  100

                                  Seacuteries financiegraveres

                                  capital taux nval apregraves n ans

                                  taux1val1 apregraves n ans

                                  GainAbs GainRel

                                  100 005 1 105 006 106 1 1

                                  100 005 2 110 006 112 2 2

                                  100 005 3 115 006 119 4 4

                                  100 005 4 121 006 126 5 5

                                  100 005 5 127 006 133 6 6

                                  100 005 6 134 006 141 7 7

                                  100 005 7 140 006 150 10 10

                                  100 005 8 147 006 159 12 12

                                  100 005 9 155 006 168 13 13

                                  100 005 10 162 006 179 17 17

                                  100 005 11 171 006 189 18 18

                                  100 005 12 179 006 201 22 22

                                  100 005 13 188 006 213 25 25

                                  100 005 14 197 006 226 29 29

                                  100 005 15 207 006 239 32 32

                                  100 005 16 218 006 254 36 36

                                  100 005 17 229 006 269 40 40

                                  100 005 18 240 006 285 45 45

                                  100 005 19 252 006 302 50 50

                                  100 005 20 265 006 320 55 55

                                  101

                                  Seacuteries financiegraveres

                                  102

                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                  financiers de la table Produits

                                  bull Dans la limite L de la somme donneacutee

                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                  bull En ordre descendant de prix

                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                  bull Plusieurs actionshellip

                                  103

                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                  P prix

                                  p3 200

                                  p1 200

                                  p2 400

                                  p3 200

                                  p4 100

                                  p6 100

                                  p5 300

                                  p8 300

                                  p7 400

                                  p10 200

                                  p12 300

                                  p13 300

                                  104

                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                  ORDER BY 4 desc 8 123

                                  105

                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                  106

                                  Creacuteation drsquoun Portefeuille Discussion

                                  Creacuteation drsquoun Portefeuille Discussion

                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                  107

                                  Creacuteation drsquoun Portefeuille Discussion

                                  Creacuteation drsquoun Portefeuille Discussion

                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                  108

                                  ROLLUP(DB2 amp SQL-Server)

                                  ROLLUP(DB2 amp SQL-Server)

                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                  109

                                  CUBE(DB2 amp SQL-Server)

                                  CUBE(DB2 amp SQL-Server)

                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                  110

                                  GROUPING SETS

                                  On indique explicitement les groupesndash entre ()

                                  le groupe () est constitueacute de toute la table

                                  SELECT p sum (qty) as tot-qty from SSP P

                                  WHERE SP P = PP AND SP S = SS

                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                  HAVING tot-qty gt 100

                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                  111

                                  Rollup Cube Grouping Setssous MsAccess

                                  Il y en a pas On peut simuler ces manipulations en

                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                  Peut ecirctre laborieux pour le CUBE

                                  112

                                  ROLLUP

                                  Remarquez le laquo null as cityraquo

                                  113

                                  ROLLUP

                                  114

                                  ROLLUP

                                  Et le CUBE

                                  Une solution pour l ambiguiumlteacute

                                  de certains nuls

                                  115

                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                  Wiley (publ)

                                  116

                                  Sous-Tables Parameacutetreacutees

                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                  117

                                  Sous-Tables Parameacutetreacutees

                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                  118

                                  Sous-Tables Parameacutetreacutees

                                  119

                                  Sous-Tables Parameacutetreacutees

                                  120

                                  Sous-Tables Parameacutetreacutees

                                  121

                                  Sous-Tables Parameacutetreacutees

                                  122

                                  Sous-Tables Parameacutetreacutees

                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                  123

                                  Sous-Tables Parameacutetreacutees

                                  Exeacutecution autonome

                                  124

                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                  hellip

                                  125

                                  Liste de Choix Multibase

                                  bull Requecircte Test-liste-de-choix mdb

                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                  126

                                  Liste de Choix MultibaseReacutesultat

                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                  Tregraves bonne question agrave Microsoft

                                  148

                                  FIN

                                  149

                                  • SQL Avanceacute 2010
                                  • Quoi amp Pourquoi
                                  • Slide 3
                                  • Synonymes
                                  • Noms dattributs
                                  • Slide 6
                                  • Slide 7
                                  • Slide 8
                                  • Insertion dans une Vue
                                  • Insertion dans une Vue (2)
                                  • MAJ drsquoune Vue MsAccess
                                  • MAJ drsquoune Vue MsAccess (2)
                                  • Suppression dans une Vue MsAccess
                                  • MsAccess Leacutegendes
                                  • Expressions de valeur
                                  • Expressions de valeur (2)
                                  • Pour en savoir + sur les attributs dynamiques
                                  • UNION et Noms Drsquoattributs
                                  • UNION et ORDER BY
                                  • ORDER BY et expressions de valeur
                                  • ORDER BY et expressions de valeur (2)
                                  • Ordre de prioriteacute dopeacuterations
                                  • Preacutedicat TOP
                                  • Preacutedicat TOP (2)
                                  • Clause BETWEEN
                                  • Limitations de NOT
                                  • ANY et ALL
                                  • Injection SQL
                                  • Injection SQL (2)
                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                  • Tabulations Croiseacutees
                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                  • Tabulations Croiseacutees (2)
                                  • Tabulations Croiseacutees (3)
                                  • Tabulations Croiseacutees (4)
                                  • Tabulations Croiseacutees (5)
                                  • XOR
                                  • IMP
                                  • Sous-requecirctes
                                  • Sous-requecirctes (2)
                                  • Sous-requecirctes (3)
                                  • Sous-requecirctes (4)
                                  • Sous-requecirctes (5)
                                  • Sous-requecirctes (6)
                                  • Sous-requecirctes (7)
                                  • Application aux Probabiliteacutes
                                  • Clause FROM imbriqueacutee
                                  • Clause FROM imbriqueacutee (2)
                                  • Clause FROM imbriqueacutee (3)
                                  • Clause FROM imbriqueacutee (4)
                                  • Clause FROM imbriqueacutee (5)
                                  • Clause FROM imbriqueacutee (6)
                                  • Valeurs nulles
                                  • Valeurs nulles (2)
                                  • Valeurs nulles (3)
                                  • Valeurs nulles (4)
                                  • Fonctions Scalaires DateTemps
                                  • Fonctions Scalaires DateTemps (2)
                                  • Fonctions Scalaires DateTemps (3)
                                  • Fonctions Scalaires DateTemps (4)
                                  • Fonctions Scalaires DateTemps (5)
                                  • Fonction Scalaire RND
                                  • Fonction Scalaire RND (2)
                                  • Fonctions Financiegraveres
                                  • Fonctions Financiegraveres (2)
                                  • Fonction DDB
                                  • Fonction DDB (2)
                                  • Fonction PMT
                                  • Fonction PMT (2)
                                  • Placement agrave taux variable
                                  • GROUP BY
                                  • LIST Function
                                  • LIST Function (2)
                                  • GROUP BY avec WHERE
                                  • GROUP BY (2)
                                  • GROUP BY avec HAVING
                                  • T-GROUP BY
                                  • T-GROUP BY (2)
                                  • T-GROUP BY (3)
                                  • T-GROUP BY (4)
                                  • Rangs Non-Denses (Non Dense Ranking)
                                  • Rangs Non-Denses (Graphique MsAccess)
                                  • Rangs Denses (Dense Ranking)
                                  • Rangs Denses Graphique MsAccess
                                  • Distribution
                                  • Reacutesultat
                                  • Distribution Cumulative
                                  • Reacutesultat (2)
                                  • Cateacutegorisation
                                  • Cateacutegorisation (2)
                                  • Cateacutegorisation (3)
                                  • UNION Preacutedictions de Valeurs Inconnues
                                  • UNION Preacutediction de Valeurs Inconnues
                                  • Tendance
                                  • Moyenne Glissante
                                  • Moyenne Glissante (2)
                                  • Moyenne Glissante (3)
                                  • Seacuteries financiegraveres
                                  • Seacuteries financiegraveres (2)
                                  • Seacuteries financiegraveres (3)
                                  • Seacuteries financiegraveres (4)
                                  • Creacuteation drsquoun Portefeuille
                                  • Creacuteation drsquoun Portefeuille (2)
                                  • Creacuteation drsquoun Portefeuille (3)
                                  • Creacuteation drsquoun Portefeuille (4)
                                  • Creacuteation drsquoun Portefeuille Discussion
                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                  • ROLLUP (DB2 amp SQL-Server)
                                  • CUBE (DB2 amp SQL-Server)
                                  • GROUPING SETS
                                  • Rollup Cube Grouping Sets sous MsAccess
                                  • Slide 112
                                  • Slide 113
                                  • Slide 114
                                  • Autres Opeacuterations Utiles
                                  • Sous-Tables Parameacutetreacutees
                                  • Sous-Tables Parameacutetreacutees (2)
                                  • Sous-Tables Parameacutetreacutees (3)
                                  • Sous-Tables Parameacutetreacutees (4)
                                  • Sous-Tables Parameacutetreacutees (5)
                                  • Sous-Tables Parameacutetreacutees (6)
                                  • Sous-Tables Parameacutetreacutees (7)
                                  • Sous-Tables Parameacutetreacutees (8)
                                  • Liste de Choix Multibase
                                  • Liste de Choix Multibase (2)
                                  • Liste de Choix Multibase Reacutesultat
                                  • FIN
                                  • Slide 149

                                    18

                                    UNION et Noms Drsquoattributs

                                    SELECT [s] FROM S

                                    Union

                                    SELECT [p] FROM p

                                    Quel nom drsquoattribut sera dans le reacutesultat

                                    Sous MSAccess Dans SQL Server MySQL Oraclehellip

                                    19

                                    UNION et ORDER BY

                                    SELECT [s] FROM S

                                    Union

                                    SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                                    les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                                    Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                                    apregraves le 2egraveme SELECT

                                    20

                                    ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                                    ORDER BY clauseORDER BY SAL - COMM

                                    Exceptions UNION MINUS INTERSECT

                                    Cette clause peut reacutefeacuterencer lattribut par position

                                    Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                                    Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                                    MsAccess

                                    21

                                    ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                                    une expression qui nest pas dans SELECT clauseSelect S CITY

                                    FROM SORDER BY SNAME STATUS+50

                                    exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                                    Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                                    Essayez

                                    SELECT distinct sp[s]

                                    FROM sp

                                    ORDER BY spqty

                                    22

                                    Ordre de prioriteacute dopeacuterations

                                    1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                    2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                    [e][e]

                                    23

                                    Preacutedicat TOP

                                    SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                    SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                    SQL Server eacutequivalent de TOP drsquoAccess

                                    SELECT TOP hellip WITH TIES

                                    >

                                    24

                                    Preacutedicat TOP

                                    Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                    La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                    Pour seacutelectionner les tuples 303132

                                    LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                    Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                    >

                                    25

                                    Clause BETWEEN

                                    Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                    geacuteneacuteriques ndash contrairement agrave LIKE

                                    Quel sera le reacutesultat pour Jones et pourquoi

                                    SELECT FROM S where sname between b and J

                                    Et si on eacutecrit

                                    SELECT FROM S where sname between J and b

                                    ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                    26

                                    Limitations de NOT

                                    Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                    (SELECT CITY FROM S)

                                    Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                    Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                    Hypothegravese de Monde ouvert

                                    27

                                    ANY et ALL

                                    All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                    (SELECT STATUS FROM S WHERE SNAME = BNP)

                                    si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                    si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                    Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                    (SELECT STATUS FROM S WHERE SNAME = BNP)

                                    28

                                    Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                    restriction une condition qui annule cette restriction

                                    Gros deacutegacircts sur le WEB notammentSELECT

                                    FROM S

                                    WHERE city=london Or True

                                    SQL Injection

                                    S SName Status City

                                    s1 smith Paris

                                    s2 Jones 100 london

                                    s3 Blake 30 Paris

                                    s4 Clark 10 london

                                    s5 Adams 30 Athens

                                    29

                                    Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                    True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                    SELECT

                                    FROM S

                                    WHERE status= 100 Or 200

                                    SELECT

                                    FROM S

                                    WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                    SELECT

                                    FROM S

                                    WHERE city=london Or 100

                                    30

                                    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                    Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                    BY et les valeurs individuelles en mecircme temps

                                    ndash Impossible avec SQL standard

                                    31

                                    S Total Qty p1 p2 p3 p4 p5 p6

                                    s1 1300 300 200 400 200 100 100

                                    s2 700 300 400

                                    s3 200 200

                                    s4 900 200 300 400

                                    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                    Tabulations Croiseacutees

                                    32

                                    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                    Transforment les valeurs dattributs en attributsndash Par exemple

                                    les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                    les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                    33

                                    S Total Qty p1 p2 p3 p4 p5 p6

                                    s1 1300 300 200 400 200 100 100

                                    s2 700 300 400

                                    s3 200 200

                                    s4 900 200 300 400

                                    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                    Tabulations Croiseacutees

                                    34

                                    TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                    Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                    Tabulations Croiseacutees

                                    Nouvellescolonnes

                                    35

                                    La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                    On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                    Tabulations Croiseacutees

                                    36

                                    On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                    Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                    On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                    Mais cette clause naffecte pas les calculs des agreacutegats

                                    Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                    Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                    Tabulations Croiseacutees

                                    37

                                    XORSELECT S[S] SStatus SCity

                                    FROM S

                                    WHERE Status=10 Xor city=paris

                                    bull A noter le traitement du nul dans City

                                    38

                                    IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                    bull A noter le traitement du nul dans City

                                    39

                                    Sous-requecirctes

                                    A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                    clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                    rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                    sous-requecircte

                                    SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                    40

                                    Sous-requecirctes

                                    Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                    laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                    vite ou Livrerait au moins aussi vite mais en quantiteacute

                                    plus grande

                                    41

                                    Sous-requecirctes

                                    Skylinendash Tout objet non-domineacute (cacheacute

                                    totalement) par un autre

                                    SELECT X[s] X[p] qty delay

                                    FROM SP X

                                    where not exists

                                    (select from SP as Y

                                    where (Yqty gt= XQty and YDelay lt XDelay or

                                    Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                    order by X[p]

                                    42

                                    Sous-requecirctes Reacutesultat

                                    s p qty delay

                                    s1 p1 300 15

                                    s4 p1 200 13

                                    s3 p2 400 15

                                    s2 p2 300 12

                                    s1 p3 400 17

                                    s4 p4 300 11

                                    s4 p5 400 7

                                    s1 p6 100 8

                                    s p qty Delay

                                    s1 p1 300 15

                                    s1 p2 200 12

                                    s1 p3 400 17

                                    s1 p4 200 11

                                    s1 p5 100 7

                                    s1 p6 100 8

                                    s2 p2 300 12

                                    s3 p2 400 15

                                    s4 p1 200 13

                                    s4 p2 200 15

                                    s4 p4 300 11

                                    s4 p5 400 7

                                    S

                                    43

                                    Sous-requecirctes

                                    On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                    SELECT Count() AS TotalQty

                                    FROM (select distinct qty from sp)

                                    On peut aussi avoir une sous-requecircte dans la clause SELECT

                                    SELECT SP[s] SP[p] qty

                                    (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                    round(qtyTotalQty 3) AS Fraction

                                    FROM SP order by [s]

                                    44

                                    Sous-requecirctes

                                    s p qty TotalQty Fraction

                                    s1 p1 300 1300 0231

                                    s1 p6 100 1300 0077

                                    s1 p5 100 1300 0077

                                    s1 p4 200 1300 0154

                                    s1 p3 400 1300 0308

                                    s1 p2 200 1300 0154

                                    s2 p2 300 300 1

                                    s3 p2 400 400 1

                                    s4 p5 400 1100 0364

                                    s4 p4 300 1100 0273

                                    s4 p2 200 1100 0182

                                    bull ReacutesultatSP

                                    s p qty

                                    s1 p1 300

                                    s1 p2 200

                                    s1 p3 400

                                    s1 p4 200

                                    s1 p5 100

                                    s1 p6 100

                                    s2 p2 300

                                    s3 p2 400

                                    s4 p1 200

                                    s4 p2 200

                                    s4 p4 300

                                    s4 p5 400

                                    45

                                    Sous-requecirctesbull En Mode Graphique

                                    s p qtyTotalQty

                                    Fraction

                                    s1 p1 300 1300 0231

                                    s1 p6 100 1300 0077

                                    s1 p5 100 1300 0077

                                    s1 p4 200 1300 0154

                                    s1 p3 400 1300 0308

                                    s1 p2 200 1300 0154

                                    s2 p2 300 300 1

                                    s3 p2 400 400 1

                                    s4 p5 400 1100 0364

                                    s4 p4 300 1100 0273

                                    s4 p2 200 1100 0182

                                    46

                                    Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                    SELECT (select count(qty) from SP

                                    where qty gt= [seuil svp ]) count() as reacutesultat

                                    FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                    probabiliteacute conditionnelle

                                    47

                                    Clause FROM imbriqueacutee

                                    Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                    Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                    Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                    Agrave essayer

                                    48

                                    Clause FROM imbriqueacuteePossibiliteacutes

                                    ndash Agreacutegations par-dessus UNION ou UNION ALL

                                    ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                    MsAccess

                                    ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                    Mais la reacutefeacuterence au nom de la requecircte OK

                                    49

                                    Clause FROM imbriqueacutee

                                    SELECT sum(weight) AS [poids-total]

                                    FROM (SELECT weight pcity FROM P WHERE City like l

                                    UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                    50

                                    Clause FROM imbriqueacutee

                                    select avg(moy1) as [moyenne-des-moyennes]

                                    FROM

                                    (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                    51

                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                    52

                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                    totaux partiels et total geacuteneacuteral

                                    total_Id TotalQty

                                    s1 1300

                                    s2 300

                                    s3 400

                                    s4 400

                                    total Geacuteneacuteral

                                    2400

                                    53

                                    Valeurs nulles

                                    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                    Non WHERE HAVING GROUP BY (rel 1)

                                    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                    MsAccess Oui DISTINCT Autres clauses

                                    54

                                    Valeurs nulles Si x est nul et y nrsquoest pas alors

                                    1 x gt y est vrai ou faux

                                    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                    SELECT FROM S WHERE CITY =Paris

                                    UNION

                                    SELECT FROM S WHERE NOT CITY = Paris

                                    est toujours pourquoi faire simpleSELECT FROM S

                                    si on peut faire compliqueacute

                                    55

                                    Valeurs nullesValeurs nulles

                                    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                    56

                                    Valeurs nulles

                                    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                    LOG (nul) -gt Error A voir cas par cas

                                    57

                                    Fonctions Scalaires DateTemps

                                    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                    58

                                    Fonctions Scalaires DateTemps

                                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                    weekday(day(now())-1) AS [day]FROM S

                                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                    59

                                    Fonctions Scalaires DateTemps

                                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                    Interval Explanation

                                    Yyyy Year

                                    q Quarter

                                    m Month

                                    y Day of year

                                    d Day

                                    w Weekday

                                    ww Week

                                    h Hour

                                    n Minute

                                    s Second

                                    60

                                    Fonctions Scalaires DateTemps

                                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                    Test DateDiff

                                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                    61

                                    Fonctions Scalaires DateTemps

                                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                    Liste tous les tuples ougrave DateV est de Janvier 2009

                                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                    62

                                    Fonction Scalaire RND

                                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                    FROM SPORDER BY rnd(qty) DESC

                                    echantillon s rank

                                    s1 502628087997437E-02

                                    s4 0518015921115875

                                    s3 075702953338623

                                    63

                                    Fonction Scalaire RND

                                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                    FROM SPORDER BY rnd(qty) DESC

                                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                    Votre commentaire ici

                                    64

                                    Fonctions Financiegraveres

                                    Fonction DDB Calcule lamortissement deacutegressif

                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                    65

                                    Fonctions Financiegraveres

                                    Fonction DDB Calcule lamortissement deacutegressif

                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                    66

                                    Fonction DDB

                                    insert into DDB (cost salvage life factor amortiss period)

                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                    DDB(cost salvage life period factor) as amortiss period

                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                    67

                                    Fonction DDB

                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                    68

                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                    nombres neacutegatifs

                                    Fonction PMT

                                    69

                                    Fonction PMT

                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                    Fonction PMT calcul dannuiteacute demprunt

                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                    preacutesentevaleur_payeacutee surprime

                                    -16049 005 20 200000 -320980 -120980

                                    70

                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                    Et les nuls que log ne supporte pas

                                    Anneacutee relative

                                    Taux

                                    1 4

                                    2 4

                                    3 3

                                    4 5

                                    5 5

                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                    71

                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                    est eacutequivalente agrave

                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                    WHERE XP = SPP) FROM SP

                                    Testez

                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                    72

                                    LIST Function La requecircte

                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                    Comme les tabulations croiseacutees

                                    ndash Mais en + simple

                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                    ndash En mono attribut (2004)

                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                    sous-formulaires

                                    73

                                    LIST Function

                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                    74

                                    GROUP BY avec WHERE

                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                    75

                                    GROUP BY

                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                    Pourquoi

                                    76

                                    GROUP BY avec HAVING

                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                    77

                                    T-GROUP BY Proposeacute pour SQL

                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                    Le rocircle de -join par rapport agrave equi-join

                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                    INT(AVG(QTY)) AS QTY2FROM SP

                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                    78

                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                    FROM SP Vrai ou Faux

                                    79

                                    T-GROUP BY

                                    Reacutesultat

                                    part avg_qty_other_parts part_avg_qty

                                    p1 250 300

                                    p2 262 250

                                    p3 245 400

                                    p4 260 250

                                    p5 260 250

                                    p6 272 100

                                    80

                                    T-GROUP BY

                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                    81

                                    Rangs Non-Denses(Non Dense Ranking)

                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                    s p qtyND-rank

                                    s4 p5 400 1

                                    s3 p2 400 1

                                    s1 p3 400 1

                                    s4 p4 300 4

                                    s2 p2 300 4

                                    s1 p1 300 4

                                    s4 p2 200 7

                                    s1 p4 200 7

                                    s1 p2 200 7

                                    s4 p1 200 7

                                    s1 p6 100 11

                                    s1 p5 100 11

                                    82

                                    Rangs Non-Denses(Graphique MsAccess)

                                    s p qty ND-rank

                                    s4 p5 400 1

                                    s3 p2 400 1

                                    s1 p3 400 1

                                    s4 p4 300 4

                                    s2 p2 300 4

                                    s1 p1 300 4

                                    s4 p2 200 7

                                    s1 p4 200 7

                                    s1 p2 200 7

                                    s4 p1 200 7

                                    s1 p6 100 11

                                    s1 p5 100 11

                                    83

                                    Rangs Denses(Dense Ranking)

                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                    s p qtyD-rank

                                    s1 p3 400 1

                                    s3 p2 400 1

                                    s4 p5 400 1

                                    s1 p1 300 2

                                    s2 p2 300 2

                                    s4 p4 300 2

                                    s1 p4 200 3

                                    s1 p2 200 3

                                    s4 p2 200 3

                                    s4 p1 200 3

                                    s1 p6 100 4

                                    s1 p5 100 4

                                    84

                                    Rangs DensesGraphique MsAccess

                                    s p qty D-rank

                                    s1 p3 400 1

                                    s3 p2 400 1

                                    s4 p5 400 1

                                    s1 p1 300 2

                                    s2 p2 300 2

                                    s4 p4 300 2

                                    s1 p4 200 3

                                    s1 p2 200 3

                                    s4 p2 200 3

                                    s4 p1 200 3

                                    s1 p6 100 4

                                    s1 p5 100 4

                                    85

                                    Distribution

                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                    86

                                    Reacutesultat

                                    s Distribution

                                    s1 0419

                                    s2 0097

                                    s3 0129

                                    s4 0355

                                    87

                                    Distribution Cumulative

                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                    FROM SP

                                    ORDER BY SP[s]

                                    88

                                    Reacutesultat

                                    sDistribution Cumuleacutee

                                    s1 0419

                                    s2 0516

                                    s3 0645

                                    s4 1

                                    89

                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                    - Un outil - Fonction scalaire IIF de SQL Access

                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                    - On peut alternativement utiliser UNION ou UNION ALL

                                    90

                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                    IIf([status]lt30OKgood) AS IIfSimple

                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                    FROM S

                                    GROUP BY S[S] SSName SStatus SCity

                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                    s1 Smith Paris good good

                                    s2 Jones 100 london good VGood

                                    s3 Blake 30 Paris good good

                                    s4 Clark 10 london OK OK

                                    s5 Adams 30 Athens good good

                                    bull Notez le traitement du null

                                    91

                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                    SELECT Ppname weight Very Heavy as Warning

                                    FROM P where weight gt 13

                                    union

                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                    UNION

                                    select Ppname weight Light as warn from p where weight lt 10

                                    ORDER BY warning DESC weight DESC

                                    pname weight Warning

                                    cam 19 Very Heavy

                                    cog 19 Very Heavy

                                    bolt 17 Very Heavy

                                    nut 14 Very Heavy

                                    screw 14 Very Heavy

                                    nut 14 Quite Heavy

                                    screw 14 Quite Heavy

                                    screw 12 Quite Heavy

                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                    92

                                    UNIONPreacutedictions de Valeurs Inconnues

                                    On considegravere AVG(Qty1) pour Qty

                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                    SP

                                    s p qtyQty1

                                    s1 p1 300 400

                                    s1 p2 200

                                    s1 p3 400 600

                                    s1 p4 200 300

                                    s1 p5 100

                                    s1 p6 100 200

                                    s2 p2 300 500

                                    s3 p2 400

                                    s4 p1 200 100

                                    s4 p2 200

                                    s4 p4 300

                                    s4 p5 400

                                    93

                                    UNIONPreacutediction de Valeurs Inconnues

                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                    SP

                                    s p qtyQty1

                                    s1 p1 300 400

                                    s1 p2 200

                                    s1 p3 400 600

                                    s1 p4 200 300

                                    s1 p5 100

                                    s1 p6 100 200

                                    s2 p2 300 500

                                    s3 p2 400

                                    s4 p1 200 100

                                    s4 p2 200

                                    s4 p4 300

                                    s4 p5 400

                                    qty for partpredicted or

                                    unknown Qty1

                                    100 p5

                                    100 predicted value 200

                                    200 p2

                                    200 predicted value 200

                                    300 p4

                                    300 predicted value 450

                                    400 p2

                                    400 p5

                                    400 predicted value 600

                                    94

                                    Tendance

                                    qty Qty1

                                    100 200

                                    200 300

                                    300 400

                                    400 600

                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                    SP est supposeacute avec la DF entre Qty et Qty1

                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                    Graph 3D avec Qty en abscisses

                                    95

                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                    30102008 120 27102008 4

                                    25102008 131 22102008 4

                                    23102008 127 20102008 4

                                    17102008 269 14102008 4

                                    15102008 60 12102008 4

                                    11102008 295 08102008 4

                                    09102008 340 06102008 4

                                    08102008 324 05102008 4

                                    06102008 315 03102008 4

                                    96

                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                    Graphique avec une info-bulle

                                    97

                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                    glissantes

                                    bull CSUM (Cumulative (Running) Sums)

                                    bull MAVG

                                    bull MSUM

                                    bull MDIFF

                                    bull Voir Teradata + loin

                                    98

                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                    99

                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                    Entiers est une table aux avec la colonne de12hellip10

                                    100

                                    Seacuteries financiegraveres

                                    capital taux nval apregraves n ans

                                    taux1val1 apregraves n ans

                                    GainAbs GainRel

                                    100 005 1 105 006 106 1 1

                                    100 005 2 110 006 112 2 2

                                    100 005 3 115 006 119 4 4

                                    100 005 4 121 006 126 5 5

                                    100 005 5 127 006 133 6 6

                                    100 005 6 134 006 141 7 7

                                    100 005 7 140 006 150 10 10

                                    100 005 8 147 006 159 12 12

                                    100 005 9 155 006 168 13 13

                                    100 005 10 162 006 179 17 17

                                    100 005 11 171 006 189 18 18

                                    100 005 12 179 006 201 22 22

                                    100 005 13 188 006 213 25 25

                                    100 005 14 197 006 226 29 29

                                    100 005 15 207 006 239 32 32

                                    100 005 16 218 006 254 36 36

                                    100 005 17 229 006 269 40 40

                                    100 005 18 240 006 285 45 45

                                    100 005 19 252 006 302 50 50

                                    100 005 20 265 006 320 55 55

                                    101

                                    Seacuteries financiegraveres

                                    102

                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                    financiers de la table Produits

                                    bull Dans la limite L de la somme donneacutee

                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                    bull En ordre descendant de prix

                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                    bull Plusieurs actionshellip

                                    103

                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                    P prix

                                    p3 200

                                    p1 200

                                    p2 400

                                    p3 200

                                    p4 100

                                    p6 100

                                    p5 300

                                    p8 300

                                    p7 400

                                    p10 200

                                    p12 300

                                    p13 300

                                    104

                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                    ORDER BY 4 desc 8 123

                                    105

                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                    106

                                    Creacuteation drsquoun Portefeuille Discussion

                                    Creacuteation drsquoun Portefeuille Discussion

                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                    107

                                    Creacuteation drsquoun Portefeuille Discussion

                                    Creacuteation drsquoun Portefeuille Discussion

                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                    108

                                    ROLLUP(DB2 amp SQL-Server)

                                    ROLLUP(DB2 amp SQL-Server)

                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                    109

                                    CUBE(DB2 amp SQL-Server)

                                    CUBE(DB2 amp SQL-Server)

                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                    110

                                    GROUPING SETS

                                    On indique explicitement les groupesndash entre ()

                                    le groupe () est constitueacute de toute la table

                                    SELECT p sum (qty) as tot-qty from SSP P

                                    WHERE SP P = PP AND SP S = SS

                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                    HAVING tot-qty gt 100

                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                    111

                                    Rollup Cube Grouping Setssous MsAccess

                                    Il y en a pas On peut simuler ces manipulations en

                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                    Peut ecirctre laborieux pour le CUBE

                                    112

                                    ROLLUP

                                    Remarquez le laquo null as cityraquo

                                    113

                                    ROLLUP

                                    114

                                    ROLLUP

                                    Et le CUBE

                                    Une solution pour l ambiguiumlteacute

                                    de certains nuls

                                    115

                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                    Wiley (publ)

                                    116

                                    Sous-Tables Parameacutetreacutees

                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                    117

                                    Sous-Tables Parameacutetreacutees

                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                    118

                                    Sous-Tables Parameacutetreacutees

                                    119

                                    Sous-Tables Parameacutetreacutees

                                    120

                                    Sous-Tables Parameacutetreacutees

                                    121

                                    Sous-Tables Parameacutetreacutees

                                    122

                                    Sous-Tables Parameacutetreacutees

                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                    123

                                    Sous-Tables Parameacutetreacutees

                                    Exeacutecution autonome

                                    124

                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                    hellip

                                    125

                                    Liste de Choix Multibase

                                    bull Requecircte Test-liste-de-choix mdb

                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                    126

                                    Liste de Choix MultibaseReacutesultat

                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                    Tregraves bonne question agrave Microsoft

                                    148

                                    FIN

                                    149

                                    • SQL Avanceacute 2010
                                    • Quoi amp Pourquoi
                                    • Slide 3
                                    • Synonymes
                                    • Noms dattributs
                                    • Slide 6
                                    • Slide 7
                                    • Slide 8
                                    • Insertion dans une Vue
                                    • Insertion dans une Vue (2)
                                    • MAJ drsquoune Vue MsAccess
                                    • MAJ drsquoune Vue MsAccess (2)
                                    • Suppression dans une Vue MsAccess
                                    • MsAccess Leacutegendes
                                    • Expressions de valeur
                                    • Expressions de valeur (2)
                                    • Pour en savoir + sur les attributs dynamiques
                                    • UNION et Noms Drsquoattributs
                                    • UNION et ORDER BY
                                    • ORDER BY et expressions de valeur
                                    • ORDER BY et expressions de valeur (2)
                                    • Ordre de prioriteacute dopeacuterations
                                    • Preacutedicat TOP
                                    • Preacutedicat TOP (2)
                                    • Clause BETWEEN
                                    • Limitations de NOT
                                    • ANY et ALL
                                    • Injection SQL
                                    • Injection SQL (2)
                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                    • Tabulations Croiseacutees
                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                    • Tabulations Croiseacutees (2)
                                    • Tabulations Croiseacutees (3)
                                    • Tabulations Croiseacutees (4)
                                    • Tabulations Croiseacutees (5)
                                    • XOR
                                    • IMP
                                    • Sous-requecirctes
                                    • Sous-requecirctes (2)
                                    • Sous-requecirctes (3)
                                    • Sous-requecirctes (4)
                                    • Sous-requecirctes (5)
                                    • Sous-requecirctes (6)
                                    • Sous-requecirctes (7)
                                    • Application aux Probabiliteacutes
                                    • Clause FROM imbriqueacutee
                                    • Clause FROM imbriqueacutee (2)
                                    • Clause FROM imbriqueacutee (3)
                                    • Clause FROM imbriqueacutee (4)
                                    • Clause FROM imbriqueacutee (5)
                                    • Clause FROM imbriqueacutee (6)
                                    • Valeurs nulles
                                    • Valeurs nulles (2)
                                    • Valeurs nulles (3)
                                    • Valeurs nulles (4)
                                    • Fonctions Scalaires DateTemps
                                    • Fonctions Scalaires DateTemps (2)
                                    • Fonctions Scalaires DateTemps (3)
                                    • Fonctions Scalaires DateTemps (4)
                                    • Fonctions Scalaires DateTemps (5)
                                    • Fonction Scalaire RND
                                    • Fonction Scalaire RND (2)
                                    • Fonctions Financiegraveres
                                    • Fonctions Financiegraveres (2)
                                    • Fonction DDB
                                    • Fonction DDB (2)
                                    • Fonction PMT
                                    • Fonction PMT (2)
                                    • Placement agrave taux variable
                                    • GROUP BY
                                    • LIST Function
                                    • LIST Function (2)
                                    • GROUP BY avec WHERE
                                    • GROUP BY (2)
                                    • GROUP BY avec HAVING
                                    • T-GROUP BY
                                    • T-GROUP BY (2)
                                    • T-GROUP BY (3)
                                    • T-GROUP BY (4)
                                    • Rangs Non-Denses (Non Dense Ranking)
                                    • Rangs Non-Denses (Graphique MsAccess)
                                    • Rangs Denses (Dense Ranking)
                                    • Rangs Denses Graphique MsAccess
                                    • Distribution
                                    • Reacutesultat
                                    • Distribution Cumulative
                                    • Reacutesultat (2)
                                    • Cateacutegorisation
                                    • Cateacutegorisation (2)
                                    • Cateacutegorisation (3)
                                    • UNION Preacutedictions de Valeurs Inconnues
                                    • UNION Preacutediction de Valeurs Inconnues
                                    • Tendance
                                    • Moyenne Glissante
                                    • Moyenne Glissante (2)
                                    • Moyenne Glissante (3)
                                    • Seacuteries financiegraveres
                                    • Seacuteries financiegraveres (2)
                                    • Seacuteries financiegraveres (3)
                                    • Seacuteries financiegraveres (4)
                                    • Creacuteation drsquoun Portefeuille
                                    • Creacuteation drsquoun Portefeuille (2)
                                    • Creacuteation drsquoun Portefeuille (3)
                                    • Creacuteation drsquoun Portefeuille (4)
                                    • Creacuteation drsquoun Portefeuille Discussion
                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                    • ROLLUP (DB2 amp SQL-Server)
                                    • CUBE (DB2 amp SQL-Server)
                                    • GROUPING SETS
                                    • Rollup Cube Grouping Sets sous MsAccess
                                    • Slide 112
                                    • Slide 113
                                    • Slide 114
                                    • Autres Opeacuterations Utiles
                                    • Sous-Tables Parameacutetreacutees
                                    • Sous-Tables Parameacutetreacutees (2)
                                    • Sous-Tables Parameacutetreacutees (3)
                                    • Sous-Tables Parameacutetreacutees (4)
                                    • Sous-Tables Parameacutetreacutees (5)
                                    • Sous-Tables Parameacutetreacutees (6)
                                    • Sous-Tables Parameacutetreacutees (7)
                                    • Sous-Tables Parameacutetreacutees (8)
                                    • Liste de Choix Multibase
                                    • Liste de Choix Multibase (2)
                                    • Liste de Choix Multibase Reacutesultat
                                    • FIN
                                    • Slide 149

                                      19

                                      UNION et ORDER BY

                                      SELECT [s] FROM S

                                      Union

                                      SELECT [p] FROM p Par conseacutequent ougrave peut-on placer la (ou

                                      les) clauses ORDER BY Apregraves le 1er Select etou apregraves le 2egraveme

                                      Quels nom(s) y employer Quel serait le reacutesultat de ORDER BY [S]

                                      apregraves le 2egraveme SELECT

                                      20

                                      ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                                      ORDER BY clauseORDER BY SAL - COMM

                                      Exceptions UNION MINUS INTERSECT

                                      Cette clause peut reacutefeacuterencer lattribut par position

                                      Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                                      Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                                      MsAccess

                                      21

                                      ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                                      une expression qui nest pas dans SELECT clauseSelect S CITY

                                      FROM SORDER BY SNAME STATUS+50

                                      exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                                      Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                                      Essayez

                                      SELECT distinct sp[s]

                                      FROM sp

                                      ORDER BY spqty

                                      22

                                      Ordre de prioriteacute dopeacuterations

                                      1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                      2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                      [e][e]

                                      23

                                      Preacutedicat TOP

                                      SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                      SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                      SQL Server eacutequivalent de TOP drsquoAccess

                                      SELECT TOP hellip WITH TIES

                                      >

                                      24

                                      Preacutedicat TOP

                                      Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                      La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                      Pour seacutelectionner les tuples 303132

                                      LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                      Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                      >

                                      25

                                      Clause BETWEEN

                                      Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                      geacuteneacuteriques ndash contrairement agrave LIKE

                                      Quel sera le reacutesultat pour Jones et pourquoi

                                      SELECT FROM S where sname between b and J

                                      Et si on eacutecrit

                                      SELECT FROM S where sname between J and b

                                      ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                      26

                                      Limitations de NOT

                                      Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                      (SELECT CITY FROM S)

                                      Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                      Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                      Hypothegravese de Monde ouvert

                                      27

                                      ANY et ALL

                                      All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                      (SELECT STATUS FROM S WHERE SNAME = BNP)

                                      si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                      si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                      Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                      (SELECT STATUS FROM S WHERE SNAME = BNP)

                                      28

                                      Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                      restriction une condition qui annule cette restriction

                                      Gros deacutegacircts sur le WEB notammentSELECT

                                      FROM S

                                      WHERE city=london Or True

                                      SQL Injection

                                      S SName Status City

                                      s1 smith Paris

                                      s2 Jones 100 london

                                      s3 Blake 30 Paris

                                      s4 Clark 10 london

                                      s5 Adams 30 Athens

                                      29

                                      Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                      True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                      SELECT

                                      FROM S

                                      WHERE status= 100 Or 200

                                      SELECT

                                      FROM S

                                      WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                      SELECT

                                      FROM S

                                      WHERE city=london Or 100

                                      30

                                      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                      Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                      BY et les valeurs individuelles en mecircme temps

                                      ndash Impossible avec SQL standard

                                      31

                                      S Total Qty p1 p2 p3 p4 p5 p6

                                      s1 1300 300 200 400 200 100 100

                                      s2 700 300 400

                                      s3 200 200

                                      s4 900 200 300 400

                                      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                      Tabulations Croiseacutees

                                      32

                                      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                      Transforment les valeurs dattributs en attributsndash Par exemple

                                      les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                      les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                      33

                                      S Total Qty p1 p2 p3 p4 p5 p6

                                      s1 1300 300 200 400 200 100 100

                                      s2 700 300 400

                                      s3 200 200

                                      s4 900 200 300 400

                                      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                      Tabulations Croiseacutees

                                      34

                                      TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                      Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                      Tabulations Croiseacutees

                                      Nouvellescolonnes

                                      35

                                      La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                      On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                      Tabulations Croiseacutees

                                      36

                                      On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                      Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                      On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                      Mais cette clause naffecte pas les calculs des agreacutegats

                                      Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                      Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                      Tabulations Croiseacutees

                                      37

                                      XORSELECT S[S] SStatus SCity

                                      FROM S

                                      WHERE Status=10 Xor city=paris

                                      bull A noter le traitement du nul dans City

                                      38

                                      IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                      bull A noter le traitement du nul dans City

                                      39

                                      Sous-requecirctes

                                      A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                      clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                      rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                      sous-requecircte

                                      SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                      40

                                      Sous-requecirctes

                                      Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                      laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                      vite ou Livrerait au moins aussi vite mais en quantiteacute

                                      plus grande

                                      41

                                      Sous-requecirctes

                                      Skylinendash Tout objet non-domineacute (cacheacute

                                      totalement) par un autre

                                      SELECT X[s] X[p] qty delay

                                      FROM SP X

                                      where not exists

                                      (select from SP as Y

                                      where (Yqty gt= XQty and YDelay lt XDelay or

                                      Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                      order by X[p]

                                      42

                                      Sous-requecirctes Reacutesultat

                                      s p qty delay

                                      s1 p1 300 15

                                      s4 p1 200 13

                                      s3 p2 400 15

                                      s2 p2 300 12

                                      s1 p3 400 17

                                      s4 p4 300 11

                                      s4 p5 400 7

                                      s1 p6 100 8

                                      s p qty Delay

                                      s1 p1 300 15

                                      s1 p2 200 12

                                      s1 p3 400 17

                                      s1 p4 200 11

                                      s1 p5 100 7

                                      s1 p6 100 8

                                      s2 p2 300 12

                                      s3 p2 400 15

                                      s4 p1 200 13

                                      s4 p2 200 15

                                      s4 p4 300 11

                                      s4 p5 400 7

                                      S

                                      43

                                      Sous-requecirctes

                                      On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                      SELECT Count() AS TotalQty

                                      FROM (select distinct qty from sp)

                                      On peut aussi avoir une sous-requecircte dans la clause SELECT

                                      SELECT SP[s] SP[p] qty

                                      (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                      round(qtyTotalQty 3) AS Fraction

                                      FROM SP order by [s]

                                      44

                                      Sous-requecirctes

                                      s p qty TotalQty Fraction

                                      s1 p1 300 1300 0231

                                      s1 p6 100 1300 0077

                                      s1 p5 100 1300 0077

                                      s1 p4 200 1300 0154

                                      s1 p3 400 1300 0308

                                      s1 p2 200 1300 0154

                                      s2 p2 300 300 1

                                      s3 p2 400 400 1

                                      s4 p5 400 1100 0364

                                      s4 p4 300 1100 0273

                                      s4 p2 200 1100 0182

                                      bull ReacutesultatSP

                                      s p qty

                                      s1 p1 300

                                      s1 p2 200

                                      s1 p3 400

                                      s1 p4 200

                                      s1 p5 100

                                      s1 p6 100

                                      s2 p2 300

                                      s3 p2 400

                                      s4 p1 200

                                      s4 p2 200

                                      s4 p4 300

                                      s4 p5 400

                                      45

                                      Sous-requecirctesbull En Mode Graphique

                                      s p qtyTotalQty

                                      Fraction

                                      s1 p1 300 1300 0231

                                      s1 p6 100 1300 0077

                                      s1 p5 100 1300 0077

                                      s1 p4 200 1300 0154

                                      s1 p3 400 1300 0308

                                      s1 p2 200 1300 0154

                                      s2 p2 300 300 1

                                      s3 p2 400 400 1

                                      s4 p5 400 1100 0364

                                      s4 p4 300 1100 0273

                                      s4 p2 200 1100 0182

                                      46

                                      Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                      SELECT (select count(qty) from SP

                                      where qty gt= [seuil svp ]) count() as reacutesultat

                                      FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                      probabiliteacute conditionnelle

                                      47

                                      Clause FROM imbriqueacutee

                                      Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                      Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                      Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                      Agrave essayer

                                      48

                                      Clause FROM imbriqueacuteePossibiliteacutes

                                      ndash Agreacutegations par-dessus UNION ou UNION ALL

                                      ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                      MsAccess

                                      ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                      Mais la reacutefeacuterence au nom de la requecircte OK

                                      49

                                      Clause FROM imbriqueacutee

                                      SELECT sum(weight) AS [poids-total]

                                      FROM (SELECT weight pcity FROM P WHERE City like l

                                      UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                      50

                                      Clause FROM imbriqueacutee

                                      select avg(moy1) as [moyenne-des-moyennes]

                                      FROM

                                      (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                      UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                      51

                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                      52

                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                      totaux partiels et total geacuteneacuteral

                                      total_Id TotalQty

                                      s1 1300

                                      s2 300

                                      s3 400

                                      s4 400

                                      total Geacuteneacuteral

                                      2400

                                      53

                                      Valeurs nulles

                                      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                      Non WHERE HAVING GROUP BY (rel 1)

                                      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                      MsAccess Oui DISTINCT Autres clauses

                                      54

                                      Valeurs nulles Si x est nul et y nrsquoest pas alors

                                      1 x gt y est vrai ou faux

                                      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                      SELECT FROM S WHERE CITY =Paris

                                      UNION

                                      SELECT FROM S WHERE NOT CITY = Paris

                                      est toujours pourquoi faire simpleSELECT FROM S

                                      si on peut faire compliqueacute

                                      55

                                      Valeurs nullesValeurs nulles

                                      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                      56

                                      Valeurs nulles

                                      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                      LOG (nul) -gt Error A voir cas par cas

                                      57

                                      Fonctions Scalaires DateTemps

                                      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                      58

                                      Fonctions Scalaires DateTemps

                                      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                      weekday(day(now())-1) AS [day]FROM S

                                      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                      59

                                      Fonctions Scalaires DateTemps

                                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                      Interval Explanation

                                      Yyyy Year

                                      q Quarter

                                      m Month

                                      y Day of year

                                      d Day

                                      w Weekday

                                      ww Week

                                      h Hour

                                      n Minute

                                      s Second

                                      60

                                      Fonctions Scalaires DateTemps

                                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                      Test DateDiff

                                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                      61

                                      Fonctions Scalaires DateTemps

                                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                      Liste tous les tuples ougrave DateV est de Janvier 2009

                                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                      62

                                      Fonction Scalaire RND

                                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                      FROM SPORDER BY rnd(qty) DESC

                                      echantillon s rank

                                      s1 502628087997437E-02

                                      s4 0518015921115875

                                      s3 075702953338623

                                      63

                                      Fonction Scalaire RND

                                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                      FROM SPORDER BY rnd(qty) DESC

                                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                      Votre commentaire ici

                                      64

                                      Fonctions Financiegraveres

                                      Fonction DDB Calcule lamortissement deacutegressif

                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                      65

                                      Fonctions Financiegraveres

                                      Fonction DDB Calcule lamortissement deacutegressif

                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                      66

                                      Fonction DDB

                                      insert into DDB (cost salvage life factor amortiss period)

                                      select 100 as cost 70 as salvage 5 as life 1 as factor

                                      DDB(cost salvage life period factor) as amortiss period

                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                      67

                                      Fonction DDB

                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                      68

                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                      nombres neacutegatifs

                                      Fonction PMT

                                      69

                                      Fonction PMT

                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                      Fonction PMT calcul dannuiteacute demprunt

                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                      preacutesentevaleur_payeacutee surprime

                                      -16049 005 20 200000 -320980 -120980

                                      70

                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                      Et les nuls que log ne supporte pas

                                      Anneacutee relative

                                      Taux

                                      1 4

                                      2 4

                                      3 3

                                      4 5

                                      5 5

                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                      71

                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                      est eacutequivalente agrave

                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                      WHERE XP = SPP) FROM SP

                                      Testez

                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                      72

                                      LIST Function La requecircte

                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                      Comme les tabulations croiseacutees

                                      ndash Mais en + simple

                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                      ndash En mono attribut (2004)

                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                      sous-formulaires

                                      73

                                      LIST Function

                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                      74

                                      GROUP BY avec WHERE

                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                      75

                                      GROUP BY

                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                      Pourquoi

                                      76

                                      GROUP BY avec HAVING

                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                      77

                                      T-GROUP BY Proposeacute pour SQL

                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                      Le rocircle de -join par rapport agrave equi-join

                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                      INT(AVG(QTY)) AS QTY2FROM SP

                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                      78

                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                      FROM SP Vrai ou Faux

                                      79

                                      T-GROUP BY

                                      Reacutesultat

                                      part avg_qty_other_parts part_avg_qty

                                      p1 250 300

                                      p2 262 250

                                      p3 245 400

                                      p4 260 250

                                      p5 260 250

                                      p6 272 100

                                      80

                                      T-GROUP BY

                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                      81

                                      Rangs Non-Denses(Non Dense Ranking)

                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                      s p qtyND-rank

                                      s4 p5 400 1

                                      s3 p2 400 1

                                      s1 p3 400 1

                                      s4 p4 300 4

                                      s2 p2 300 4

                                      s1 p1 300 4

                                      s4 p2 200 7

                                      s1 p4 200 7

                                      s1 p2 200 7

                                      s4 p1 200 7

                                      s1 p6 100 11

                                      s1 p5 100 11

                                      82

                                      Rangs Non-Denses(Graphique MsAccess)

                                      s p qty ND-rank

                                      s4 p5 400 1

                                      s3 p2 400 1

                                      s1 p3 400 1

                                      s4 p4 300 4

                                      s2 p2 300 4

                                      s1 p1 300 4

                                      s4 p2 200 7

                                      s1 p4 200 7

                                      s1 p2 200 7

                                      s4 p1 200 7

                                      s1 p6 100 11

                                      s1 p5 100 11

                                      83

                                      Rangs Denses(Dense Ranking)

                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                      s p qtyD-rank

                                      s1 p3 400 1

                                      s3 p2 400 1

                                      s4 p5 400 1

                                      s1 p1 300 2

                                      s2 p2 300 2

                                      s4 p4 300 2

                                      s1 p4 200 3

                                      s1 p2 200 3

                                      s4 p2 200 3

                                      s4 p1 200 3

                                      s1 p6 100 4

                                      s1 p5 100 4

                                      84

                                      Rangs DensesGraphique MsAccess

                                      s p qty D-rank

                                      s1 p3 400 1

                                      s3 p2 400 1

                                      s4 p5 400 1

                                      s1 p1 300 2

                                      s2 p2 300 2

                                      s4 p4 300 2

                                      s1 p4 200 3

                                      s1 p2 200 3

                                      s4 p2 200 3

                                      s4 p1 200 3

                                      s1 p6 100 4

                                      s1 p5 100 4

                                      85

                                      Distribution

                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                      86

                                      Reacutesultat

                                      s Distribution

                                      s1 0419

                                      s2 0097

                                      s3 0129

                                      s4 0355

                                      87

                                      Distribution Cumulative

                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                      FROM SP

                                      ORDER BY SP[s]

                                      88

                                      Reacutesultat

                                      sDistribution Cumuleacutee

                                      s1 0419

                                      s2 0516

                                      s3 0645

                                      s4 1

                                      89

                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                      - Un outil - Fonction scalaire IIF de SQL Access

                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                      - On peut alternativement utiliser UNION ou UNION ALL

                                      90

                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                      IIf([status]lt30OKgood) AS IIfSimple

                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                      FROM S

                                      GROUP BY S[S] SSName SStatus SCity

                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                      s1 Smith Paris good good

                                      s2 Jones 100 london good VGood

                                      s3 Blake 30 Paris good good

                                      s4 Clark 10 london OK OK

                                      s5 Adams 30 Athens good good

                                      bull Notez le traitement du null

                                      91

                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                      SELECT Ppname weight Very Heavy as Warning

                                      FROM P where weight gt 13

                                      union

                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                      UNION

                                      select Ppname weight Light as warn from p where weight lt 10

                                      ORDER BY warning DESC weight DESC

                                      pname weight Warning

                                      cam 19 Very Heavy

                                      cog 19 Very Heavy

                                      bolt 17 Very Heavy

                                      nut 14 Very Heavy

                                      screw 14 Very Heavy

                                      nut 14 Quite Heavy

                                      screw 14 Quite Heavy

                                      screw 12 Quite Heavy

                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                      92

                                      UNIONPreacutedictions de Valeurs Inconnues

                                      On considegravere AVG(Qty1) pour Qty

                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                      SP

                                      s p qtyQty1

                                      s1 p1 300 400

                                      s1 p2 200

                                      s1 p3 400 600

                                      s1 p4 200 300

                                      s1 p5 100

                                      s1 p6 100 200

                                      s2 p2 300 500

                                      s3 p2 400

                                      s4 p1 200 100

                                      s4 p2 200

                                      s4 p4 300

                                      s4 p5 400

                                      93

                                      UNIONPreacutediction de Valeurs Inconnues

                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                      SP

                                      s p qtyQty1

                                      s1 p1 300 400

                                      s1 p2 200

                                      s1 p3 400 600

                                      s1 p4 200 300

                                      s1 p5 100

                                      s1 p6 100 200

                                      s2 p2 300 500

                                      s3 p2 400

                                      s4 p1 200 100

                                      s4 p2 200

                                      s4 p4 300

                                      s4 p5 400

                                      qty for partpredicted or

                                      unknown Qty1

                                      100 p5

                                      100 predicted value 200

                                      200 p2

                                      200 predicted value 200

                                      300 p4

                                      300 predicted value 450

                                      400 p2

                                      400 p5

                                      400 predicted value 600

                                      94

                                      Tendance

                                      qty Qty1

                                      100 200

                                      200 300

                                      300 400

                                      400 600

                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                      SP est supposeacute avec la DF entre Qty et Qty1

                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                      Graph 3D avec Qty en abscisses

                                      95

                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                      30102008 120 27102008 4

                                      25102008 131 22102008 4

                                      23102008 127 20102008 4

                                      17102008 269 14102008 4

                                      15102008 60 12102008 4

                                      11102008 295 08102008 4

                                      09102008 340 06102008 4

                                      08102008 324 05102008 4

                                      06102008 315 03102008 4

                                      96

                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                      Graphique avec une info-bulle

                                      97

                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                      glissantes

                                      bull CSUM (Cumulative (Running) Sums)

                                      bull MAVG

                                      bull MSUM

                                      bull MDIFF

                                      bull Voir Teradata + loin

                                      98

                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                      99

                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                      Entiers est une table aux avec la colonne de12hellip10

                                      100

                                      Seacuteries financiegraveres

                                      capital taux nval apregraves n ans

                                      taux1val1 apregraves n ans

                                      GainAbs GainRel

                                      100 005 1 105 006 106 1 1

                                      100 005 2 110 006 112 2 2

                                      100 005 3 115 006 119 4 4

                                      100 005 4 121 006 126 5 5

                                      100 005 5 127 006 133 6 6

                                      100 005 6 134 006 141 7 7

                                      100 005 7 140 006 150 10 10

                                      100 005 8 147 006 159 12 12

                                      100 005 9 155 006 168 13 13

                                      100 005 10 162 006 179 17 17

                                      100 005 11 171 006 189 18 18

                                      100 005 12 179 006 201 22 22

                                      100 005 13 188 006 213 25 25

                                      100 005 14 197 006 226 29 29

                                      100 005 15 207 006 239 32 32

                                      100 005 16 218 006 254 36 36

                                      100 005 17 229 006 269 40 40

                                      100 005 18 240 006 285 45 45

                                      100 005 19 252 006 302 50 50

                                      100 005 20 265 006 320 55 55

                                      101

                                      Seacuteries financiegraveres

                                      102

                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                      financiers de la table Produits

                                      bull Dans la limite L de la somme donneacutee

                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                      bull En ordre descendant de prix

                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                      bull Plusieurs actionshellip

                                      103

                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                      P prix

                                      p3 200

                                      p1 200

                                      p2 400

                                      p3 200

                                      p4 100

                                      p6 100

                                      p5 300

                                      p8 300

                                      p7 400

                                      p10 200

                                      p12 300

                                      p13 300

                                      104

                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                      ORDER BY 4 desc 8 123

                                      105

                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                      106

                                      Creacuteation drsquoun Portefeuille Discussion

                                      Creacuteation drsquoun Portefeuille Discussion

                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                      107

                                      Creacuteation drsquoun Portefeuille Discussion

                                      Creacuteation drsquoun Portefeuille Discussion

                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                      108

                                      ROLLUP(DB2 amp SQL-Server)

                                      ROLLUP(DB2 amp SQL-Server)

                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                      109

                                      CUBE(DB2 amp SQL-Server)

                                      CUBE(DB2 amp SQL-Server)

                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                      110

                                      GROUPING SETS

                                      On indique explicitement les groupesndash entre ()

                                      le groupe () est constitueacute de toute la table

                                      SELECT p sum (qty) as tot-qty from SSP P

                                      WHERE SP P = PP AND SP S = SS

                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                      HAVING tot-qty gt 100

                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                      111

                                      Rollup Cube Grouping Setssous MsAccess

                                      Il y en a pas On peut simuler ces manipulations en

                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                      Peut ecirctre laborieux pour le CUBE

                                      112

                                      ROLLUP

                                      Remarquez le laquo null as cityraquo

                                      113

                                      ROLLUP

                                      114

                                      ROLLUP

                                      Et le CUBE

                                      Une solution pour l ambiguiumlteacute

                                      de certains nuls

                                      115

                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                      Wiley (publ)

                                      116

                                      Sous-Tables Parameacutetreacutees

                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                      117

                                      Sous-Tables Parameacutetreacutees

                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                      118

                                      Sous-Tables Parameacutetreacutees

                                      119

                                      Sous-Tables Parameacutetreacutees

                                      120

                                      Sous-Tables Parameacutetreacutees

                                      121

                                      Sous-Tables Parameacutetreacutees

                                      122

                                      Sous-Tables Parameacutetreacutees

                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                      123

                                      Sous-Tables Parameacutetreacutees

                                      Exeacutecution autonome

                                      124

                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                      hellip

                                      125

                                      Liste de Choix Multibase

                                      bull Requecircte Test-liste-de-choix mdb

                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                      126

                                      Liste de Choix MultibaseReacutesultat

                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                      Tregraves bonne question agrave Microsoft

                                      148

                                      FIN

                                      149

                                      • SQL Avanceacute 2010
                                      • Quoi amp Pourquoi
                                      • Slide 3
                                      • Synonymes
                                      • Noms dattributs
                                      • Slide 6
                                      • Slide 7
                                      • Slide 8
                                      • Insertion dans une Vue
                                      • Insertion dans une Vue (2)
                                      • MAJ drsquoune Vue MsAccess
                                      • MAJ drsquoune Vue MsAccess (2)
                                      • Suppression dans une Vue MsAccess
                                      • MsAccess Leacutegendes
                                      • Expressions de valeur
                                      • Expressions de valeur (2)
                                      • Pour en savoir + sur les attributs dynamiques
                                      • UNION et Noms Drsquoattributs
                                      • UNION et ORDER BY
                                      • ORDER BY et expressions de valeur
                                      • ORDER BY et expressions de valeur (2)
                                      • Ordre de prioriteacute dopeacuterations
                                      • Preacutedicat TOP
                                      • Preacutedicat TOP (2)
                                      • Clause BETWEEN
                                      • Limitations de NOT
                                      • ANY et ALL
                                      • Injection SQL
                                      • Injection SQL (2)
                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                      • Tabulations Croiseacutees
                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                      • Tabulations Croiseacutees (2)
                                      • Tabulations Croiseacutees (3)
                                      • Tabulations Croiseacutees (4)
                                      • Tabulations Croiseacutees (5)
                                      • XOR
                                      • IMP
                                      • Sous-requecirctes
                                      • Sous-requecirctes (2)
                                      • Sous-requecirctes (3)
                                      • Sous-requecirctes (4)
                                      • Sous-requecirctes (5)
                                      • Sous-requecirctes (6)
                                      • Sous-requecirctes (7)
                                      • Application aux Probabiliteacutes
                                      • Clause FROM imbriqueacutee
                                      • Clause FROM imbriqueacutee (2)
                                      • Clause FROM imbriqueacutee (3)
                                      • Clause FROM imbriqueacutee (4)
                                      • Clause FROM imbriqueacutee (5)
                                      • Clause FROM imbriqueacutee (6)
                                      • Valeurs nulles
                                      • Valeurs nulles (2)
                                      • Valeurs nulles (3)
                                      • Valeurs nulles (4)
                                      • Fonctions Scalaires DateTemps
                                      • Fonctions Scalaires DateTemps (2)
                                      • Fonctions Scalaires DateTemps (3)
                                      • Fonctions Scalaires DateTemps (4)
                                      • Fonctions Scalaires DateTemps (5)
                                      • Fonction Scalaire RND
                                      • Fonction Scalaire RND (2)
                                      • Fonctions Financiegraveres
                                      • Fonctions Financiegraveres (2)
                                      • Fonction DDB
                                      • Fonction DDB (2)
                                      • Fonction PMT
                                      • Fonction PMT (2)
                                      • Placement agrave taux variable
                                      • GROUP BY
                                      • LIST Function
                                      • LIST Function (2)
                                      • GROUP BY avec WHERE
                                      • GROUP BY (2)
                                      • GROUP BY avec HAVING
                                      • T-GROUP BY
                                      • T-GROUP BY (2)
                                      • T-GROUP BY (3)
                                      • T-GROUP BY (4)
                                      • Rangs Non-Denses (Non Dense Ranking)
                                      • Rangs Non-Denses (Graphique MsAccess)
                                      • Rangs Denses (Dense Ranking)
                                      • Rangs Denses Graphique MsAccess
                                      • Distribution
                                      • Reacutesultat
                                      • Distribution Cumulative
                                      • Reacutesultat (2)
                                      • Cateacutegorisation
                                      • Cateacutegorisation (2)
                                      • Cateacutegorisation (3)
                                      • UNION Preacutedictions de Valeurs Inconnues
                                      • UNION Preacutediction de Valeurs Inconnues
                                      • Tendance
                                      • Moyenne Glissante
                                      • Moyenne Glissante (2)
                                      • Moyenne Glissante (3)
                                      • Seacuteries financiegraveres
                                      • Seacuteries financiegraveres (2)
                                      • Seacuteries financiegraveres (3)
                                      • Seacuteries financiegraveres (4)
                                      • Creacuteation drsquoun Portefeuille
                                      • Creacuteation drsquoun Portefeuille (2)
                                      • Creacuteation drsquoun Portefeuille (3)
                                      • Creacuteation drsquoun Portefeuille (4)
                                      • Creacuteation drsquoun Portefeuille Discussion
                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                      • ROLLUP (DB2 amp SQL-Server)
                                      • CUBE (DB2 amp SQL-Server)
                                      • GROUPING SETS
                                      • Rollup Cube Grouping Sets sous MsAccess
                                      • Slide 112
                                      • Slide 113
                                      • Slide 114
                                      • Autres Opeacuterations Utiles
                                      • Sous-Tables Parameacutetreacutees
                                      • Sous-Tables Parameacutetreacutees (2)
                                      • Sous-Tables Parameacutetreacutees (3)
                                      • Sous-Tables Parameacutetreacutees (4)
                                      • Sous-Tables Parameacutetreacutees (5)
                                      • Sous-Tables Parameacutetreacutees (6)
                                      • Sous-Tables Parameacutetreacutees (7)
                                      • Sous-Tables Parameacutetreacutees (8)
                                      • Liste de Choix Multibase
                                      • Liste de Choix Multibase (2)
                                      • Liste de Choix Multibase Reacutesultat
                                      • FIN
                                      • Slide 149

                                        20

                                        ORDER BY et expressions de valeur Les expressions de valeur peuvent ecirctre dans

                                        ORDER BY clauseORDER BY SAL - COMM

                                        Exceptions UNION MINUS INTERSECT

                                        Cette clause peut reacutefeacuterencer lattribut par position

                                        Select ENAME SAL 075 (SAL + 500)FROM EMPORDER BY 3

                                        Un must dans UNION MINUS INTERSECT dans Oracle Un alias dans le 1egraver Select est acceptable dans

                                        MsAccess

                                        21

                                        ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                                        une expression qui nest pas dans SELECT clauseSelect S CITY

                                        FROM SORDER BY SNAME STATUS+50

                                        exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                                        Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                                        Essayez

                                        SELECT distinct sp[s]

                                        FROM sp

                                        ORDER BY spqty

                                        22

                                        Ordre de prioriteacute dopeacuterations

                                        1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                        2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                        [e][e]

                                        23

                                        Preacutedicat TOP

                                        SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                        SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                        SQL Server eacutequivalent de TOP drsquoAccess

                                        SELECT TOP hellip WITH TIES

                                        >

                                        24

                                        Preacutedicat TOP

                                        Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                        La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                        Pour seacutelectionner les tuples 303132

                                        LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                        Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                        >

                                        25

                                        Clause BETWEEN

                                        Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                        geacuteneacuteriques ndash contrairement agrave LIKE

                                        Quel sera le reacutesultat pour Jones et pourquoi

                                        SELECT FROM S where sname between b and J

                                        Et si on eacutecrit

                                        SELECT FROM S where sname between J and b

                                        ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                        26

                                        Limitations de NOT

                                        Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                        (SELECT CITY FROM S)

                                        Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                        Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                        Hypothegravese de Monde ouvert

                                        27

                                        ANY et ALL

                                        All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                        (SELECT STATUS FROM S WHERE SNAME = BNP)

                                        si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                        si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                        Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                        (SELECT STATUS FROM S WHERE SNAME = BNP)

                                        28

                                        Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                        restriction une condition qui annule cette restriction

                                        Gros deacutegacircts sur le WEB notammentSELECT

                                        FROM S

                                        WHERE city=london Or True

                                        SQL Injection

                                        S SName Status City

                                        s1 smith Paris

                                        s2 Jones 100 london

                                        s3 Blake 30 Paris

                                        s4 Clark 10 london

                                        s5 Adams 30 Athens

                                        29

                                        Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                        True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                        SELECT

                                        FROM S

                                        WHERE status= 100 Or 200

                                        SELECT

                                        FROM S

                                        WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                        SELECT

                                        FROM S

                                        WHERE city=london Or 100

                                        30

                                        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                        Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                        BY et les valeurs individuelles en mecircme temps

                                        ndash Impossible avec SQL standard

                                        31

                                        S Total Qty p1 p2 p3 p4 p5 p6

                                        s1 1300 300 200 400 200 100 100

                                        s2 700 300 400

                                        s3 200 200

                                        s4 900 200 300 400

                                        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                        Tabulations Croiseacutees

                                        32

                                        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                        Transforment les valeurs dattributs en attributsndash Par exemple

                                        les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                        les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                        33

                                        S Total Qty p1 p2 p3 p4 p5 p6

                                        s1 1300 300 200 400 200 100 100

                                        s2 700 300 400

                                        s3 200 200

                                        s4 900 200 300 400

                                        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                        Tabulations Croiseacutees

                                        34

                                        TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                        Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                        Tabulations Croiseacutees

                                        Nouvellescolonnes

                                        35

                                        La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                        On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                        Tabulations Croiseacutees

                                        36

                                        On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                        Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                        On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                        Mais cette clause naffecte pas les calculs des agreacutegats

                                        Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                        Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                        Tabulations Croiseacutees

                                        37

                                        XORSELECT S[S] SStatus SCity

                                        FROM S

                                        WHERE Status=10 Xor city=paris

                                        bull A noter le traitement du nul dans City

                                        38

                                        IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                        bull A noter le traitement du nul dans City

                                        39

                                        Sous-requecirctes

                                        A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                        clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                        rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                        sous-requecircte

                                        SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                        40

                                        Sous-requecirctes

                                        Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                        laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                        vite ou Livrerait au moins aussi vite mais en quantiteacute

                                        plus grande

                                        41

                                        Sous-requecirctes

                                        Skylinendash Tout objet non-domineacute (cacheacute

                                        totalement) par un autre

                                        SELECT X[s] X[p] qty delay

                                        FROM SP X

                                        where not exists

                                        (select from SP as Y

                                        where (Yqty gt= XQty and YDelay lt XDelay or

                                        Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                        order by X[p]

                                        42

                                        Sous-requecirctes Reacutesultat

                                        s p qty delay

                                        s1 p1 300 15

                                        s4 p1 200 13

                                        s3 p2 400 15

                                        s2 p2 300 12

                                        s1 p3 400 17

                                        s4 p4 300 11

                                        s4 p5 400 7

                                        s1 p6 100 8

                                        s p qty Delay

                                        s1 p1 300 15

                                        s1 p2 200 12

                                        s1 p3 400 17

                                        s1 p4 200 11

                                        s1 p5 100 7

                                        s1 p6 100 8

                                        s2 p2 300 12

                                        s3 p2 400 15

                                        s4 p1 200 13

                                        s4 p2 200 15

                                        s4 p4 300 11

                                        s4 p5 400 7

                                        S

                                        43

                                        Sous-requecirctes

                                        On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                        SELECT Count() AS TotalQty

                                        FROM (select distinct qty from sp)

                                        On peut aussi avoir une sous-requecircte dans la clause SELECT

                                        SELECT SP[s] SP[p] qty

                                        (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                        round(qtyTotalQty 3) AS Fraction

                                        FROM SP order by [s]

                                        44

                                        Sous-requecirctes

                                        s p qty TotalQty Fraction

                                        s1 p1 300 1300 0231

                                        s1 p6 100 1300 0077

                                        s1 p5 100 1300 0077

                                        s1 p4 200 1300 0154

                                        s1 p3 400 1300 0308

                                        s1 p2 200 1300 0154

                                        s2 p2 300 300 1

                                        s3 p2 400 400 1

                                        s4 p5 400 1100 0364

                                        s4 p4 300 1100 0273

                                        s4 p2 200 1100 0182

                                        bull ReacutesultatSP

                                        s p qty

                                        s1 p1 300

                                        s1 p2 200

                                        s1 p3 400

                                        s1 p4 200

                                        s1 p5 100

                                        s1 p6 100

                                        s2 p2 300

                                        s3 p2 400

                                        s4 p1 200

                                        s4 p2 200

                                        s4 p4 300

                                        s4 p5 400

                                        45

                                        Sous-requecirctesbull En Mode Graphique

                                        s p qtyTotalQty

                                        Fraction

                                        s1 p1 300 1300 0231

                                        s1 p6 100 1300 0077

                                        s1 p5 100 1300 0077

                                        s1 p4 200 1300 0154

                                        s1 p3 400 1300 0308

                                        s1 p2 200 1300 0154

                                        s2 p2 300 300 1

                                        s3 p2 400 400 1

                                        s4 p5 400 1100 0364

                                        s4 p4 300 1100 0273

                                        s4 p2 200 1100 0182

                                        46

                                        Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                        SELECT (select count(qty) from SP

                                        where qty gt= [seuil svp ]) count() as reacutesultat

                                        FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                        probabiliteacute conditionnelle

                                        47

                                        Clause FROM imbriqueacutee

                                        Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                        Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                        Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                        Agrave essayer

                                        48

                                        Clause FROM imbriqueacuteePossibiliteacutes

                                        ndash Agreacutegations par-dessus UNION ou UNION ALL

                                        ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                        MsAccess

                                        ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                        Mais la reacutefeacuterence au nom de la requecircte OK

                                        49

                                        Clause FROM imbriqueacutee

                                        SELECT sum(weight) AS [poids-total]

                                        FROM (SELECT weight pcity FROM P WHERE City like l

                                        UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                        50

                                        Clause FROM imbriqueacutee

                                        select avg(moy1) as [moyenne-des-moyennes]

                                        FROM

                                        (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                        UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                        51

                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                        select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                        52

                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                        totaux partiels et total geacuteneacuteral

                                        total_Id TotalQty

                                        s1 1300

                                        s2 300

                                        s3 400

                                        s4 400

                                        total Geacuteneacuteral

                                        2400

                                        53

                                        Valeurs nulles

                                        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                        Non WHERE HAVING GROUP BY (rel 1)

                                        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                        MsAccess Oui DISTINCT Autres clauses

                                        54

                                        Valeurs nulles Si x est nul et y nrsquoest pas alors

                                        1 x gt y est vrai ou faux

                                        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                        SELECT FROM S WHERE CITY =Paris

                                        UNION

                                        SELECT FROM S WHERE NOT CITY = Paris

                                        est toujours pourquoi faire simpleSELECT FROM S

                                        si on peut faire compliqueacute

                                        55

                                        Valeurs nullesValeurs nulles

                                        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                        56

                                        Valeurs nulles

                                        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                        LOG (nul) -gt Error A voir cas par cas

                                        57

                                        Fonctions Scalaires DateTemps

                                        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                        58

                                        Fonctions Scalaires DateTemps

                                        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                        weekday(day(now())-1) AS [day]FROM S

                                        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                        59

                                        Fonctions Scalaires DateTemps

                                        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                        Interval Explanation

                                        Yyyy Year

                                        q Quarter

                                        m Month

                                        y Day of year

                                        d Day

                                        w Weekday

                                        ww Week

                                        h Hour

                                        n Minute

                                        s Second

                                        60

                                        Fonctions Scalaires DateTemps

                                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                        Test DateDiff

                                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                        61

                                        Fonctions Scalaires DateTemps

                                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                        Liste tous les tuples ougrave DateV est de Janvier 2009

                                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                        62

                                        Fonction Scalaire RND

                                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                        FROM SPORDER BY rnd(qty) DESC

                                        echantillon s rank

                                        s1 502628087997437E-02

                                        s4 0518015921115875

                                        s3 075702953338623

                                        63

                                        Fonction Scalaire RND

                                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                        FROM SPORDER BY rnd(qty) DESC

                                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                        Votre commentaire ici

                                        64

                                        Fonctions Financiegraveres

                                        Fonction DDB Calcule lamortissement deacutegressif

                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                        65

                                        Fonctions Financiegraveres

                                        Fonction DDB Calcule lamortissement deacutegressif

                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                        66

                                        Fonction DDB

                                        insert into DDB (cost salvage life factor amortiss period)

                                        select 100 as cost 70 as salvage 5 as life 1 as factor

                                        DDB(cost salvage life period factor) as amortiss period

                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                        67

                                        Fonction DDB

                                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                        68

                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                        nombres neacutegatifs

                                        Fonction PMT

                                        69

                                        Fonction PMT

                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                        Fonction PMT calcul dannuiteacute demprunt

                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                        preacutesentevaleur_payeacutee surprime

                                        -16049 005 20 200000 -320980 -120980

                                        70

                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                        Et les nuls que log ne supporte pas

                                        Anneacutee relative

                                        Taux

                                        1 4

                                        2 4

                                        3 3

                                        4 5

                                        5 5

                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                        71

                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                        est eacutequivalente agrave

                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                        WHERE XP = SPP) FROM SP

                                        Testez

                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                        72

                                        LIST Function La requecircte

                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                        Comme les tabulations croiseacutees

                                        ndash Mais en + simple

                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                        ndash En mono attribut (2004)

                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                        sous-formulaires

                                        73

                                        LIST Function

                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                        74

                                        GROUP BY avec WHERE

                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                        75

                                        GROUP BY

                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                        Pourquoi

                                        76

                                        GROUP BY avec HAVING

                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                        77

                                        T-GROUP BY Proposeacute pour SQL

                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                        Le rocircle de -join par rapport agrave equi-join

                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                        INT(AVG(QTY)) AS QTY2FROM SP

                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                        78

                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                        FROM SP Vrai ou Faux

                                        79

                                        T-GROUP BY

                                        Reacutesultat

                                        part avg_qty_other_parts part_avg_qty

                                        p1 250 300

                                        p2 262 250

                                        p3 245 400

                                        p4 260 250

                                        p5 260 250

                                        p6 272 100

                                        80

                                        T-GROUP BY

                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                        81

                                        Rangs Non-Denses(Non Dense Ranking)

                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                        s p qtyND-rank

                                        s4 p5 400 1

                                        s3 p2 400 1

                                        s1 p3 400 1

                                        s4 p4 300 4

                                        s2 p2 300 4

                                        s1 p1 300 4

                                        s4 p2 200 7

                                        s1 p4 200 7

                                        s1 p2 200 7

                                        s4 p1 200 7

                                        s1 p6 100 11

                                        s1 p5 100 11

                                        82

                                        Rangs Non-Denses(Graphique MsAccess)

                                        s p qty ND-rank

                                        s4 p5 400 1

                                        s3 p2 400 1

                                        s1 p3 400 1

                                        s4 p4 300 4

                                        s2 p2 300 4

                                        s1 p1 300 4

                                        s4 p2 200 7

                                        s1 p4 200 7

                                        s1 p2 200 7

                                        s4 p1 200 7

                                        s1 p6 100 11

                                        s1 p5 100 11

                                        83

                                        Rangs Denses(Dense Ranking)

                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                        s p qtyD-rank

                                        s1 p3 400 1

                                        s3 p2 400 1

                                        s4 p5 400 1

                                        s1 p1 300 2

                                        s2 p2 300 2

                                        s4 p4 300 2

                                        s1 p4 200 3

                                        s1 p2 200 3

                                        s4 p2 200 3

                                        s4 p1 200 3

                                        s1 p6 100 4

                                        s1 p5 100 4

                                        84

                                        Rangs DensesGraphique MsAccess

                                        s p qty D-rank

                                        s1 p3 400 1

                                        s3 p2 400 1

                                        s4 p5 400 1

                                        s1 p1 300 2

                                        s2 p2 300 2

                                        s4 p4 300 2

                                        s1 p4 200 3

                                        s1 p2 200 3

                                        s4 p2 200 3

                                        s4 p1 200 3

                                        s1 p6 100 4

                                        s1 p5 100 4

                                        85

                                        Distribution

                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                        86

                                        Reacutesultat

                                        s Distribution

                                        s1 0419

                                        s2 0097

                                        s3 0129

                                        s4 0355

                                        87

                                        Distribution Cumulative

                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                        FROM SP

                                        ORDER BY SP[s]

                                        88

                                        Reacutesultat

                                        sDistribution Cumuleacutee

                                        s1 0419

                                        s2 0516

                                        s3 0645

                                        s4 1

                                        89

                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                        - Un outil - Fonction scalaire IIF de SQL Access

                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                        - On peut alternativement utiliser UNION ou UNION ALL

                                        90

                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                        IIf([status]lt30OKgood) AS IIfSimple

                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                        FROM S

                                        GROUP BY S[S] SSName SStatus SCity

                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                        s1 Smith Paris good good

                                        s2 Jones 100 london good VGood

                                        s3 Blake 30 Paris good good

                                        s4 Clark 10 london OK OK

                                        s5 Adams 30 Athens good good

                                        bull Notez le traitement du null

                                        91

                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                        SELECT Ppname weight Very Heavy as Warning

                                        FROM P where weight gt 13

                                        union

                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                        UNION

                                        select Ppname weight Light as warn from p where weight lt 10

                                        ORDER BY warning DESC weight DESC

                                        pname weight Warning

                                        cam 19 Very Heavy

                                        cog 19 Very Heavy

                                        bolt 17 Very Heavy

                                        nut 14 Very Heavy

                                        screw 14 Very Heavy

                                        nut 14 Quite Heavy

                                        screw 14 Quite Heavy

                                        screw 12 Quite Heavy

                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                        92

                                        UNIONPreacutedictions de Valeurs Inconnues

                                        On considegravere AVG(Qty1) pour Qty

                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                        SP

                                        s p qtyQty1

                                        s1 p1 300 400

                                        s1 p2 200

                                        s1 p3 400 600

                                        s1 p4 200 300

                                        s1 p5 100

                                        s1 p6 100 200

                                        s2 p2 300 500

                                        s3 p2 400

                                        s4 p1 200 100

                                        s4 p2 200

                                        s4 p4 300

                                        s4 p5 400

                                        93

                                        UNIONPreacutediction de Valeurs Inconnues

                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                        SP

                                        s p qtyQty1

                                        s1 p1 300 400

                                        s1 p2 200

                                        s1 p3 400 600

                                        s1 p4 200 300

                                        s1 p5 100

                                        s1 p6 100 200

                                        s2 p2 300 500

                                        s3 p2 400

                                        s4 p1 200 100

                                        s4 p2 200

                                        s4 p4 300

                                        s4 p5 400

                                        qty for partpredicted or

                                        unknown Qty1

                                        100 p5

                                        100 predicted value 200

                                        200 p2

                                        200 predicted value 200

                                        300 p4

                                        300 predicted value 450

                                        400 p2

                                        400 p5

                                        400 predicted value 600

                                        94

                                        Tendance

                                        qty Qty1

                                        100 200

                                        200 300

                                        300 400

                                        400 600

                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                        SP est supposeacute avec la DF entre Qty et Qty1

                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                        Graph 3D avec Qty en abscisses

                                        95

                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                        30102008 120 27102008 4

                                        25102008 131 22102008 4

                                        23102008 127 20102008 4

                                        17102008 269 14102008 4

                                        15102008 60 12102008 4

                                        11102008 295 08102008 4

                                        09102008 340 06102008 4

                                        08102008 324 05102008 4

                                        06102008 315 03102008 4

                                        96

                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                        Graphique avec une info-bulle

                                        97

                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                        glissantes

                                        bull CSUM (Cumulative (Running) Sums)

                                        bull MAVG

                                        bull MSUM

                                        bull MDIFF

                                        bull Voir Teradata + loin

                                        98

                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                        99

                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                        Entiers est une table aux avec la colonne de12hellip10

                                        100

                                        Seacuteries financiegraveres

                                        capital taux nval apregraves n ans

                                        taux1val1 apregraves n ans

                                        GainAbs GainRel

                                        100 005 1 105 006 106 1 1

                                        100 005 2 110 006 112 2 2

                                        100 005 3 115 006 119 4 4

                                        100 005 4 121 006 126 5 5

                                        100 005 5 127 006 133 6 6

                                        100 005 6 134 006 141 7 7

                                        100 005 7 140 006 150 10 10

                                        100 005 8 147 006 159 12 12

                                        100 005 9 155 006 168 13 13

                                        100 005 10 162 006 179 17 17

                                        100 005 11 171 006 189 18 18

                                        100 005 12 179 006 201 22 22

                                        100 005 13 188 006 213 25 25

                                        100 005 14 197 006 226 29 29

                                        100 005 15 207 006 239 32 32

                                        100 005 16 218 006 254 36 36

                                        100 005 17 229 006 269 40 40

                                        100 005 18 240 006 285 45 45

                                        100 005 19 252 006 302 50 50

                                        100 005 20 265 006 320 55 55

                                        101

                                        Seacuteries financiegraveres

                                        102

                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                        financiers de la table Produits

                                        bull Dans la limite L de la somme donneacutee

                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                        bull En ordre descendant de prix

                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                        bull Plusieurs actionshellip

                                        103

                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                        P prix

                                        p3 200

                                        p1 200

                                        p2 400

                                        p3 200

                                        p4 100

                                        p6 100

                                        p5 300

                                        p8 300

                                        p7 400

                                        p10 200

                                        p12 300

                                        p13 300

                                        104

                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                        ORDER BY 4 desc 8 123

                                        105

                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                        106

                                        Creacuteation drsquoun Portefeuille Discussion

                                        Creacuteation drsquoun Portefeuille Discussion

                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                        107

                                        Creacuteation drsquoun Portefeuille Discussion

                                        Creacuteation drsquoun Portefeuille Discussion

                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                        108

                                        ROLLUP(DB2 amp SQL-Server)

                                        ROLLUP(DB2 amp SQL-Server)

                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                        109

                                        CUBE(DB2 amp SQL-Server)

                                        CUBE(DB2 amp SQL-Server)

                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                        110

                                        GROUPING SETS

                                        On indique explicitement les groupesndash entre ()

                                        le groupe () est constitueacute de toute la table

                                        SELECT p sum (qty) as tot-qty from SSP P

                                        WHERE SP P = PP AND SP S = SS

                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                        HAVING tot-qty gt 100

                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                        111

                                        Rollup Cube Grouping Setssous MsAccess

                                        Il y en a pas On peut simuler ces manipulations en

                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                        Peut ecirctre laborieux pour le CUBE

                                        112

                                        ROLLUP

                                        Remarquez le laquo null as cityraquo

                                        113

                                        ROLLUP

                                        114

                                        ROLLUP

                                        Et le CUBE

                                        Une solution pour l ambiguiumlteacute

                                        de certains nuls

                                        115

                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                        Wiley (publ)

                                        116

                                        Sous-Tables Parameacutetreacutees

                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                        117

                                        Sous-Tables Parameacutetreacutees

                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                        118

                                        Sous-Tables Parameacutetreacutees

                                        119

                                        Sous-Tables Parameacutetreacutees

                                        120

                                        Sous-Tables Parameacutetreacutees

                                        121

                                        Sous-Tables Parameacutetreacutees

                                        122

                                        Sous-Tables Parameacutetreacutees

                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                        123

                                        Sous-Tables Parameacutetreacutees

                                        Exeacutecution autonome

                                        124

                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                        hellip

                                        125

                                        Liste de Choix Multibase

                                        bull Requecircte Test-liste-de-choix mdb

                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                        126

                                        Liste de Choix MultibaseReacutesultat

                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                        Tregraves bonne question agrave Microsoft

                                        148

                                        FIN

                                        149

                                        • SQL Avanceacute 2010
                                        • Quoi amp Pourquoi
                                        • Slide 3
                                        • Synonymes
                                        • Noms dattributs
                                        • Slide 6
                                        • Slide 7
                                        • Slide 8
                                        • Insertion dans une Vue
                                        • Insertion dans une Vue (2)
                                        • MAJ drsquoune Vue MsAccess
                                        • MAJ drsquoune Vue MsAccess (2)
                                        • Suppression dans une Vue MsAccess
                                        • MsAccess Leacutegendes
                                        • Expressions de valeur
                                        • Expressions de valeur (2)
                                        • Pour en savoir + sur les attributs dynamiques
                                        • UNION et Noms Drsquoattributs
                                        • UNION et ORDER BY
                                        • ORDER BY et expressions de valeur
                                        • ORDER BY et expressions de valeur (2)
                                        • Ordre de prioriteacute dopeacuterations
                                        • Preacutedicat TOP
                                        • Preacutedicat TOP (2)
                                        • Clause BETWEEN
                                        • Limitations de NOT
                                        • ANY et ALL
                                        • Injection SQL
                                        • Injection SQL (2)
                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                        • Tabulations Croiseacutees
                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                        • Tabulations Croiseacutees (2)
                                        • Tabulations Croiseacutees (3)
                                        • Tabulations Croiseacutees (4)
                                        • Tabulations Croiseacutees (5)
                                        • XOR
                                        • IMP
                                        • Sous-requecirctes
                                        • Sous-requecirctes (2)
                                        • Sous-requecirctes (3)
                                        • Sous-requecirctes (4)
                                        • Sous-requecirctes (5)
                                        • Sous-requecirctes (6)
                                        • Sous-requecirctes (7)
                                        • Application aux Probabiliteacutes
                                        • Clause FROM imbriqueacutee
                                        • Clause FROM imbriqueacutee (2)
                                        • Clause FROM imbriqueacutee (3)
                                        • Clause FROM imbriqueacutee (4)
                                        • Clause FROM imbriqueacutee (5)
                                        • Clause FROM imbriqueacutee (6)
                                        • Valeurs nulles
                                        • Valeurs nulles (2)
                                        • Valeurs nulles (3)
                                        • Valeurs nulles (4)
                                        • Fonctions Scalaires DateTemps
                                        • Fonctions Scalaires DateTemps (2)
                                        • Fonctions Scalaires DateTemps (3)
                                        • Fonctions Scalaires DateTemps (4)
                                        • Fonctions Scalaires DateTemps (5)
                                        • Fonction Scalaire RND
                                        • Fonction Scalaire RND (2)
                                        • Fonctions Financiegraveres
                                        • Fonctions Financiegraveres (2)
                                        • Fonction DDB
                                        • Fonction DDB (2)
                                        • Fonction PMT
                                        • Fonction PMT (2)
                                        • Placement agrave taux variable
                                        • GROUP BY
                                        • LIST Function
                                        • LIST Function (2)
                                        • GROUP BY avec WHERE
                                        • GROUP BY (2)
                                        • GROUP BY avec HAVING
                                        • T-GROUP BY
                                        • T-GROUP BY (2)
                                        • T-GROUP BY (3)
                                        • T-GROUP BY (4)
                                        • Rangs Non-Denses (Non Dense Ranking)
                                        • Rangs Non-Denses (Graphique MsAccess)
                                        • Rangs Denses (Dense Ranking)
                                        • Rangs Denses Graphique MsAccess
                                        • Distribution
                                        • Reacutesultat
                                        • Distribution Cumulative
                                        • Reacutesultat (2)
                                        • Cateacutegorisation
                                        • Cateacutegorisation (2)
                                        • Cateacutegorisation (3)
                                        • UNION Preacutedictions de Valeurs Inconnues
                                        • UNION Preacutediction de Valeurs Inconnues
                                        • Tendance
                                        • Moyenne Glissante
                                        • Moyenne Glissante (2)
                                        • Moyenne Glissante (3)
                                        • Seacuteries financiegraveres
                                        • Seacuteries financiegraveres (2)
                                        • Seacuteries financiegraveres (3)
                                        • Seacuteries financiegraveres (4)
                                        • Creacuteation drsquoun Portefeuille
                                        • Creacuteation drsquoun Portefeuille (2)
                                        • Creacuteation drsquoun Portefeuille (3)
                                        • Creacuteation drsquoun Portefeuille (4)
                                        • Creacuteation drsquoun Portefeuille Discussion
                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                        • ROLLUP (DB2 amp SQL-Server)
                                        • CUBE (DB2 amp SQL-Server)
                                        • GROUPING SETS
                                        • Rollup Cube Grouping Sets sous MsAccess
                                        • Slide 112
                                        • Slide 113
                                        • Slide 114
                                        • Autres Opeacuterations Utiles
                                        • Sous-Tables Parameacutetreacutees
                                        • Sous-Tables Parameacutetreacutees (2)
                                        • Sous-Tables Parameacutetreacutees (3)
                                        • Sous-Tables Parameacutetreacutees (4)
                                        • Sous-Tables Parameacutetreacutees (5)
                                        • Sous-Tables Parameacutetreacutees (6)
                                        • Sous-Tables Parameacutetreacutees (7)
                                        • Sous-Tables Parameacutetreacutees (8)
                                        • Liste de Choix Multibase
                                        • Liste de Choix Multibase (2)
                                        • Liste de Choix Multibase Reacutesultat
                                        • FIN
                                        • Slide 149

                                          21

                                          ORDER BY et expressions de valeur ORDER BY clause peut aussi reacutefeacuterencer un attribut et

                                          une expression qui nest pas dans SELECT clauseSelect S CITY

                                          FROM SORDER BY SNAME STATUS+50

                                          exceptions UNION MINUS INTERSECT DB2 SQL navait pas ces possibiliteacutes

                                          Aux derniegraveres nouvelles ORDER BY et DISTINCT peuvent ecirctre en conflit

                                          Essayez

                                          SELECT distinct sp[s]

                                          FROM sp

                                          ORDER BY spqty

                                          22

                                          Ordre de prioriteacute dopeacuterations

                                          1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                          2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                          [e][e]

                                          23

                                          Preacutedicat TOP

                                          SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                          SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                          SQL Server eacutequivalent de TOP drsquoAccess

                                          SELECT TOP hellip WITH TIES

                                          >

                                          24

                                          Preacutedicat TOP

                                          Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                          La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                          Pour seacutelectionner les tuples 303132

                                          LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                          Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                          >

                                          25

                                          Clause BETWEEN

                                          Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                          geacuteneacuteriques ndash contrairement agrave LIKE

                                          Quel sera le reacutesultat pour Jones et pourquoi

                                          SELECT FROM S where sname between b and J

                                          Et si on eacutecrit

                                          SELECT FROM S where sname between J and b

                                          ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                          26

                                          Limitations de NOT

                                          Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                          (SELECT CITY FROM S)

                                          Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                          Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                          Hypothegravese de Monde ouvert

                                          27

                                          ANY et ALL

                                          All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                          (SELECT STATUS FROM S WHERE SNAME = BNP)

                                          si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                          si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                          Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                          (SELECT STATUS FROM S WHERE SNAME = BNP)

                                          28

                                          Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                          restriction une condition qui annule cette restriction

                                          Gros deacutegacircts sur le WEB notammentSELECT

                                          FROM S

                                          WHERE city=london Or True

                                          SQL Injection

                                          S SName Status City

                                          s1 smith Paris

                                          s2 Jones 100 london

                                          s3 Blake 30 Paris

                                          s4 Clark 10 london

                                          s5 Adams 30 Athens

                                          29

                                          Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                          True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                          SELECT

                                          FROM S

                                          WHERE status= 100 Or 200

                                          SELECT

                                          FROM S

                                          WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                          SELECT

                                          FROM S

                                          WHERE city=london Or 100

                                          30

                                          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                          Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                          BY et les valeurs individuelles en mecircme temps

                                          ndash Impossible avec SQL standard

                                          31

                                          S Total Qty p1 p2 p3 p4 p5 p6

                                          s1 1300 300 200 400 200 100 100

                                          s2 700 300 400

                                          s3 200 200

                                          s4 900 200 300 400

                                          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                          Tabulations Croiseacutees

                                          32

                                          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                          Transforment les valeurs dattributs en attributsndash Par exemple

                                          les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                          les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                          33

                                          S Total Qty p1 p2 p3 p4 p5 p6

                                          s1 1300 300 200 400 200 100 100

                                          s2 700 300 400

                                          s3 200 200

                                          s4 900 200 300 400

                                          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                          Tabulations Croiseacutees

                                          34

                                          TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                          Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                          Tabulations Croiseacutees

                                          Nouvellescolonnes

                                          35

                                          La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                          On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                          Tabulations Croiseacutees

                                          36

                                          On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                          Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                          On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                          Mais cette clause naffecte pas les calculs des agreacutegats

                                          Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                          Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                          Tabulations Croiseacutees

                                          37

                                          XORSELECT S[S] SStatus SCity

                                          FROM S

                                          WHERE Status=10 Xor city=paris

                                          bull A noter le traitement du nul dans City

                                          38

                                          IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                          bull A noter le traitement du nul dans City

                                          39

                                          Sous-requecirctes

                                          A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                          clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                          rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                          sous-requecircte

                                          SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                          40

                                          Sous-requecirctes

                                          Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                          laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                          vite ou Livrerait au moins aussi vite mais en quantiteacute

                                          plus grande

                                          41

                                          Sous-requecirctes

                                          Skylinendash Tout objet non-domineacute (cacheacute

                                          totalement) par un autre

                                          SELECT X[s] X[p] qty delay

                                          FROM SP X

                                          where not exists

                                          (select from SP as Y

                                          where (Yqty gt= XQty and YDelay lt XDelay or

                                          Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                          order by X[p]

                                          42

                                          Sous-requecirctes Reacutesultat

                                          s p qty delay

                                          s1 p1 300 15

                                          s4 p1 200 13

                                          s3 p2 400 15

                                          s2 p2 300 12

                                          s1 p3 400 17

                                          s4 p4 300 11

                                          s4 p5 400 7

                                          s1 p6 100 8

                                          s p qty Delay

                                          s1 p1 300 15

                                          s1 p2 200 12

                                          s1 p3 400 17

                                          s1 p4 200 11

                                          s1 p5 100 7

                                          s1 p6 100 8

                                          s2 p2 300 12

                                          s3 p2 400 15

                                          s4 p1 200 13

                                          s4 p2 200 15

                                          s4 p4 300 11

                                          s4 p5 400 7

                                          S

                                          43

                                          Sous-requecirctes

                                          On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                          SELECT Count() AS TotalQty

                                          FROM (select distinct qty from sp)

                                          On peut aussi avoir une sous-requecircte dans la clause SELECT

                                          SELECT SP[s] SP[p] qty

                                          (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                          round(qtyTotalQty 3) AS Fraction

                                          FROM SP order by [s]

                                          44

                                          Sous-requecirctes

                                          s p qty TotalQty Fraction

                                          s1 p1 300 1300 0231

                                          s1 p6 100 1300 0077

                                          s1 p5 100 1300 0077

                                          s1 p4 200 1300 0154

                                          s1 p3 400 1300 0308

                                          s1 p2 200 1300 0154

                                          s2 p2 300 300 1

                                          s3 p2 400 400 1

                                          s4 p5 400 1100 0364

                                          s4 p4 300 1100 0273

                                          s4 p2 200 1100 0182

                                          bull ReacutesultatSP

                                          s p qty

                                          s1 p1 300

                                          s1 p2 200

                                          s1 p3 400

                                          s1 p4 200

                                          s1 p5 100

                                          s1 p6 100

                                          s2 p2 300

                                          s3 p2 400

                                          s4 p1 200

                                          s4 p2 200

                                          s4 p4 300

                                          s4 p5 400

                                          45

                                          Sous-requecirctesbull En Mode Graphique

                                          s p qtyTotalQty

                                          Fraction

                                          s1 p1 300 1300 0231

                                          s1 p6 100 1300 0077

                                          s1 p5 100 1300 0077

                                          s1 p4 200 1300 0154

                                          s1 p3 400 1300 0308

                                          s1 p2 200 1300 0154

                                          s2 p2 300 300 1

                                          s3 p2 400 400 1

                                          s4 p5 400 1100 0364

                                          s4 p4 300 1100 0273

                                          s4 p2 200 1100 0182

                                          46

                                          Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                          SELECT (select count(qty) from SP

                                          where qty gt= [seuil svp ]) count() as reacutesultat

                                          FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                          probabiliteacute conditionnelle

                                          47

                                          Clause FROM imbriqueacutee

                                          Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                          Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                          Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                          Agrave essayer

                                          48

                                          Clause FROM imbriqueacuteePossibiliteacutes

                                          ndash Agreacutegations par-dessus UNION ou UNION ALL

                                          ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                          MsAccess

                                          ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                          Mais la reacutefeacuterence au nom de la requecircte OK

                                          49

                                          Clause FROM imbriqueacutee

                                          SELECT sum(weight) AS [poids-total]

                                          FROM (SELECT weight pcity FROM P WHERE City like l

                                          UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                          50

                                          Clause FROM imbriqueacutee

                                          select avg(moy1) as [moyenne-des-moyennes]

                                          FROM

                                          (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                          UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                          51

                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                          select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                          52

                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                          totaux partiels et total geacuteneacuteral

                                          total_Id TotalQty

                                          s1 1300

                                          s2 300

                                          s3 400

                                          s4 400

                                          total Geacuteneacuteral

                                          2400

                                          53

                                          Valeurs nulles

                                          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                          Non WHERE HAVING GROUP BY (rel 1)

                                          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                          MsAccess Oui DISTINCT Autres clauses

                                          54

                                          Valeurs nulles Si x est nul et y nrsquoest pas alors

                                          1 x gt y est vrai ou faux

                                          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                          SELECT FROM S WHERE CITY =Paris

                                          UNION

                                          SELECT FROM S WHERE NOT CITY = Paris

                                          est toujours pourquoi faire simpleSELECT FROM S

                                          si on peut faire compliqueacute

                                          55

                                          Valeurs nullesValeurs nulles

                                          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                          56

                                          Valeurs nulles

                                          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                          LOG (nul) -gt Error A voir cas par cas

                                          57

                                          Fonctions Scalaires DateTemps

                                          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                          58

                                          Fonctions Scalaires DateTemps

                                          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                          weekday(day(now())-1) AS [day]FROM S

                                          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                          59

                                          Fonctions Scalaires DateTemps

                                          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                          Interval Explanation

                                          Yyyy Year

                                          q Quarter

                                          m Month

                                          y Day of year

                                          d Day

                                          w Weekday

                                          ww Week

                                          h Hour

                                          n Minute

                                          s Second

                                          60

                                          Fonctions Scalaires DateTemps

                                          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                          Test DateDiff

                                          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                          61

                                          Fonctions Scalaires DateTemps

                                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                          Liste tous les tuples ougrave DateV est de Janvier 2009

                                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                          62

                                          Fonction Scalaire RND

                                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                          FROM SPORDER BY rnd(qty) DESC

                                          echantillon s rank

                                          s1 502628087997437E-02

                                          s4 0518015921115875

                                          s3 075702953338623

                                          63

                                          Fonction Scalaire RND

                                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                          FROM SPORDER BY rnd(qty) DESC

                                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                          Votre commentaire ici

                                          64

                                          Fonctions Financiegraveres

                                          Fonction DDB Calcule lamortissement deacutegressif

                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                          65

                                          Fonctions Financiegraveres

                                          Fonction DDB Calcule lamortissement deacutegressif

                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                          66

                                          Fonction DDB

                                          insert into DDB (cost salvage life factor amortiss period)

                                          select 100 as cost 70 as salvage 5 as life 1 as factor

                                          DDB(cost salvage life period factor) as amortiss period

                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                          67

                                          Fonction DDB

                                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                          68

                                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                          nombres neacutegatifs

                                          Fonction PMT

                                          69

                                          Fonction PMT

                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                          Fonction PMT calcul dannuiteacute demprunt

                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                          preacutesentevaleur_payeacutee surprime

                                          -16049 005 20 200000 -320980 -120980

                                          70

                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                          Et les nuls que log ne supporte pas

                                          Anneacutee relative

                                          Taux

                                          1 4

                                          2 4

                                          3 3

                                          4 5

                                          5 5

                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                          71

                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                          est eacutequivalente agrave

                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                          WHERE XP = SPP) FROM SP

                                          Testez

                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                          72

                                          LIST Function La requecircte

                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                          Comme les tabulations croiseacutees

                                          ndash Mais en + simple

                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                          ndash En mono attribut (2004)

                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                          sous-formulaires

                                          73

                                          LIST Function

                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                          74

                                          GROUP BY avec WHERE

                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                          75

                                          GROUP BY

                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                          Pourquoi

                                          76

                                          GROUP BY avec HAVING

                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                          77

                                          T-GROUP BY Proposeacute pour SQL

                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                          Le rocircle de -join par rapport agrave equi-join

                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                          INT(AVG(QTY)) AS QTY2FROM SP

                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                          78

                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                          FROM SP Vrai ou Faux

                                          79

                                          T-GROUP BY

                                          Reacutesultat

                                          part avg_qty_other_parts part_avg_qty

                                          p1 250 300

                                          p2 262 250

                                          p3 245 400

                                          p4 260 250

                                          p5 260 250

                                          p6 272 100

                                          80

                                          T-GROUP BY

                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                          81

                                          Rangs Non-Denses(Non Dense Ranking)

                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                          s p qtyND-rank

                                          s4 p5 400 1

                                          s3 p2 400 1

                                          s1 p3 400 1

                                          s4 p4 300 4

                                          s2 p2 300 4

                                          s1 p1 300 4

                                          s4 p2 200 7

                                          s1 p4 200 7

                                          s1 p2 200 7

                                          s4 p1 200 7

                                          s1 p6 100 11

                                          s1 p5 100 11

                                          82

                                          Rangs Non-Denses(Graphique MsAccess)

                                          s p qty ND-rank

                                          s4 p5 400 1

                                          s3 p2 400 1

                                          s1 p3 400 1

                                          s4 p4 300 4

                                          s2 p2 300 4

                                          s1 p1 300 4

                                          s4 p2 200 7

                                          s1 p4 200 7

                                          s1 p2 200 7

                                          s4 p1 200 7

                                          s1 p6 100 11

                                          s1 p5 100 11

                                          83

                                          Rangs Denses(Dense Ranking)

                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                          s p qtyD-rank

                                          s1 p3 400 1

                                          s3 p2 400 1

                                          s4 p5 400 1

                                          s1 p1 300 2

                                          s2 p2 300 2

                                          s4 p4 300 2

                                          s1 p4 200 3

                                          s1 p2 200 3

                                          s4 p2 200 3

                                          s4 p1 200 3

                                          s1 p6 100 4

                                          s1 p5 100 4

                                          84

                                          Rangs DensesGraphique MsAccess

                                          s p qty D-rank

                                          s1 p3 400 1

                                          s3 p2 400 1

                                          s4 p5 400 1

                                          s1 p1 300 2

                                          s2 p2 300 2

                                          s4 p4 300 2

                                          s1 p4 200 3

                                          s1 p2 200 3

                                          s4 p2 200 3

                                          s4 p1 200 3

                                          s1 p6 100 4

                                          s1 p5 100 4

                                          85

                                          Distribution

                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                          86

                                          Reacutesultat

                                          s Distribution

                                          s1 0419

                                          s2 0097

                                          s3 0129

                                          s4 0355

                                          87

                                          Distribution Cumulative

                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                          FROM SP

                                          ORDER BY SP[s]

                                          88

                                          Reacutesultat

                                          sDistribution Cumuleacutee

                                          s1 0419

                                          s2 0516

                                          s3 0645

                                          s4 1

                                          89

                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                          - Un outil - Fonction scalaire IIF de SQL Access

                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                          - On peut alternativement utiliser UNION ou UNION ALL

                                          90

                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                          IIf([status]lt30OKgood) AS IIfSimple

                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                          FROM S

                                          GROUP BY S[S] SSName SStatus SCity

                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                          s1 Smith Paris good good

                                          s2 Jones 100 london good VGood

                                          s3 Blake 30 Paris good good

                                          s4 Clark 10 london OK OK

                                          s5 Adams 30 Athens good good

                                          bull Notez le traitement du null

                                          91

                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                          SELECT Ppname weight Very Heavy as Warning

                                          FROM P where weight gt 13

                                          union

                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                          UNION

                                          select Ppname weight Light as warn from p where weight lt 10

                                          ORDER BY warning DESC weight DESC

                                          pname weight Warning

                                          cam 19 Very Heavy

                                          cog 19 Very Heavy

                                          bolt 17 Very Heavy

                                          nut 14 Very Heavy

                                          screw 14 Very Heavy

                                          nut 14 Quite Heavy

                                          screw 14 Quite Heavy

                                          screw 12 Quite Heavy

                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                          92

                                          UNIONPreacutedictions de Valeurs Inconnues

                                          On considegravere AVG(Qty1) pour Qty

                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                          SP

                                          s p qtyQty1

                                          s1 p1 300 400

                                          s1 p2 200

                                          s1 p3 400 600

                                          s1 p4 200 300

                                          s1 p5 100

                                          s1 p6 100 200

                                          s2 p2 300 500

                                          s3 p2 400

                                          s4 p1 200 100

                                          s4 p2 200

                                          s4 p4 300

                                          s4 p5 400

                                          93

                                          UNIONPreacutediction de Valeurs Inconnues

                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                          SP

                                          s p qtyQty1

                                          s1 p1 300 400

                                          s1 p2 200

                                          s1 p3 400 600

                                          s1 p4 200 300

                                          s1 p5 100

                                          s1 p6 100 200

                                          s2 p2 300 500

                                          s3 p2 400

                                          s4 p1 200 100

                                          s4 p2 200

                                          s4 p4 300

                                          s4 p5 400

                                          qty for partpredicted or

                                          unknown Qty1

                                          100 p5

                                          100 predicted value 200

                                          200 p2

                                          200 predicted value 200

                                          300 p4

                                          300 predicted value 450

                                          400 p2

                                          400 p5

                                          400 predicted value 600

                                          94

                                          Tendance

                                          qty Qty1

                                          100 200

                                          200 300

                                          300 400

                                          400 600

                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                          SP est supposeacute avec la DF entre Qty et Qty1

                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                          Graph 3D avec Qty en abscisses

                                          95

                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                          30102008 120 27102008 4

                                          25102008 131 22102008 4

                                          23102008 127 20102008 4

                                          17102008 269 14102008 4

                                          15102008 60 12102008 4

                                          11102008 295 08102008 4

                                          09102008 340 06102008 4

                                          08102008 324 05102008 4

                                          06102008 315 03102008 4

                                          96

                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                          Graphique avec une info-bulle

                                          97

                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                          glissantes

                                          bull CSUM (Cumulative (Running) Sums)

                                          bull MAVG

                                          bull MSUM

                                          bull MDIFF

                                          bull Voir Teradata + loin

                                          98

                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                          99

                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                          Entiers est une table aux avec la colonne de12hellip10

                                          100

                                          Seacuteries financiegraveres

                                          capital taux nval apregraves n ans

                                          taux1val1 apregraves n ans

                                          GainAbs GainRel

                                          100 005 1 105 006 106 1 1

                                          100 005 2 110 006 112 2 2

                                          100 005 3 115 006 119 4 4

                                          100 005 4 121 006 126 5 5

                                          100 005 5 127 006 133 6 6

                                          100 005 6 134 006 141 7 7

                                          100 005 7 140 006 150 10 10

                                          100 005 8 147 006 159 12 12

                                          100 005 9 155 006 168 13 13

                                          100 005 10 162 006 179 17 17

                                          100 005 11 171 006 189 18 18

                                          100 005 12 179 006 201 22 22

                                          100 005 13 188 006 213 25 25

                                          100 005 14 197 006 226 29 29

                                          100 005 15 207 006 239 32 32

                                          100 005 16 218 006 254 36 36

                                          100 005 17 229 006 269 40 40

                                          100 005 18 240 006 285 45 45

                                          100 005 19 252 006 302 50 50

                                          100 005 20 265 006 320 55 55

                                          101

                                          Seacuteries financiegraveres

                                          102

                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                          financiers de la table Produits

                                          bull Dans la limite L de la somme donneacutee

                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                          bull En ordre descendant de prix

                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                          bull Plusieurs actionshellip

                                          103

                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                          P prix

                                          p3 200

                                          p1 200

                                          p2 400

                                          p3 200

                                          p4 100

                                          p6 100

                                          p5 300

                                          p8 300

                                          p7 400

                                          p10 200

                                          p12 300

                                          p13 300

                                          104

                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                          ORDER BY 4 desc 8 123

                                          105

                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                          106

                                          Creacuteation drsquoun Portefeuille Discussion

                                          Creacuteation drsquoun Portefeuille Discussion

                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                          107

                                          Creacuteation drsquoun Portefeuille Discussion

                                          Creacuteation drsquoun Portefeuille Discussion

                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                          108

                                          ROLLUP(DB2 amp SQL-Server)

                                          ROLLUP(DB2 amp SQL-Server)

                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                          109

                                          CUBE(DB2 amp SQL-Server)

                                          CUBE(DB2 amp SQL-Server)

                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                          110

                                          GROUPING SETS

                                          On indique explicitement les groupesndash entre ()

                                          le groupe () est constitueacute de toute la table

                                          SELECT p sum (qty) as tot-qty from SSP P

                                          WHERE SP P = PP AND SP S = SS

                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                          HAVING tot-qty gt 100

                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                          111

                                          Rollup Cube Grouping Setssous MsAccess

                                          Il y en a pas On peut simuler ces manipulations en

                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                          Peut ecirctre laborieux pour le CUBE

                                          112

                                          ROLLUP

                                          Remarquez le laquo null as cityraquo

                                          113

                                          ROLLUP

                                          114

                                          ROLLUP

                                          Et le CUBE

                                          Une solution pour l ambiguiumlteacute

                                          de certains nuls

                                          115

                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                          Wiley (publ)

                                          116

                                          Sous-Tables Parameacutetreacutees

                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                          117

                                          Sous-Tables Parameacutetreacutees

                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                          118

                                          Sous-Tables Parameacutetreacutees

                                          119

                                          Sous-Tables Parameacutetreacutees

                                          120

                                          Sous-Tables Parameacutetreacutees

                                          121

                                          Sous-Tables Parameacutetreacutees

                                          122

                                          Sous-Tables Parameacutetreacutees

                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                          123

                                          Sous-Tables Parameacutetreacutees

                                          Exeacutecution autonome

                                          124

                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                          hellip

                                          125

                                          Liste de Choix Multibase

                                          bull Requecircte Test-liste-de-choix mdb

                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                          126

                                          Liste de Choix MultibaseReacutesultat

                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                          Tregraves bonne question agrave Microsoft

                                          148

                                          FIN

                                          149

                                          • SQL Avanceacute 2010
                                          • Quoi amp Pourquoi
                                          • Slide 3
                                          • Synonymes
                                          • Noms dattributs
                                          • Slide 6
                                          • Slide 7
                                          • Slide 8
                                          • Insertion dans une Vue
                                          • Insertion dans une Vue (2)
                                          • MAJ drsquoune Vue MsAccess
                                          • MAJ drsquoune Vue MsAccess (2)
                                          • Suppression dans une Vue MsAccess
                                          • MsAccess Leacutegendes
                                          • Expressions de valeur
                                          • Expressions de valeur (2)
                                          • Pour en savoir + sur les attributs dynamiques
                                          • UNION et Noms Drsquoattributs
                                          • UNION et ORDER BY
                                          • ORDER BY et expressions de valeur
                                          • ORDER BY et expressions de valeur (2)
                                          • Ordre de prioriteacute dopeacuterations
                                          • Preacutedicat TOP
                                          • Preacutedicat TOP (2)
                                          • Clause BETWEEN
                                          • Limitations de NOT
                                          • ANY et ALL
                                          • Injection SQL
                                          • Injection SQL (2)
                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                          • Tabulations Croiseacutees
                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                          • Tabulations Croiseacutees (2)
                                          • Tabulations Croiseacutees (3)
                                          • Tabulations Croiseacutees (4)
                                          • Tabulations Croiseacutees (5)
                                          • XOR
                                          • IMP
                                          • Sous-requecirctes
                                          • Sous-requecirctes (2)
                                          • Sous-requecirctes (3)
                                          • Sous-requecirctes (4)
                                          • Sous-requecirctes (5)
                                          • Sous-requecirctes (6)
                                          • Sous-requecirctes (7)
                                          • Application aux Probabiliteacutes
                                          • Clause FROM imbriqueacutee
                                          • Clause FROM imbriqueacutee (2)
                                          • Clause FROM imbriqueacutee (3)
                                          • Clause FROM imbriqueacutee (4)
                                          • Clause FROM imbriqueacutee (5)
                                          • Clause FROM imbriqueacutee (6)
                                          • Valeurs nulles
                                          • Valeurs nulles (2)
                                          • Valeurs nulles (3)
                                          • Valeurs nulles (4)
                                          • Fonctions Scalaires DateTemps
                                          • Fonctions Scalaires DateTemps (2)
                                          • Fonctions Scalaires DateTemps (3)
                                          • Fonctions Scalaires DateTemps (4)
                                          • Fonctions Scalaires DateTemps (5)
                                          • Fonction Scalaire RND
                                          • Fonction Scalaire RND (2)
                                          • Fonctions Financiegraveres
                                          • Fonctions Financiegraveres (2)
                                          • Fonction DDB
                                          • Fonction DDB (2)
                                          • Fonction PMT
                                          • Fonction PMT (2)
                                          • Placement agrave taux variable
                                          • GROUP BY
                                          • LIST Function
                                          • LIST Function (2)
                                          • GROUP BY avec WHERE
                                          • GROUP BY (2)
                                          • GROUP BY avec HAVING
                                          • T-GROUP BY
                                          • T-GROUP BY (2)
                                          • T-GROUP BY (3)
                                          • T-GROUP BY (4)
                                          • Rangs Non-Denses (Non Dense Ranking)
                                          • Rangs Non-Denses (Graphique MsAccess)
                                          • Rangs Denses (Dense Ranking)
                                          • Rangs Denses Graphique MsAccess
                                          • Distribution
                                          • Reacutesultat
                                          • Distribution Cumulative
                                          • Reacutesultat (2)
                                          • Cateacutegorisation
                                          • Cateacutegorisation (2)
                                          • Cateacutegorisation (3)
                                          • UNION Preacutedictions de Valeurs Inconnues
                                          • UNION Preacutediction de Valeurs Inconnues
                                          • Tendance
                                          • Moyenne Glissante
                                          • Moyenne Glissante (2)
                                          • Moyenne Glissante (3)
                                          • Seacuteries financiegraveres
                                          • Seacuteries financiegraveres (2)
                                          • Seacuteries financiegraveres (3)
                                          • Seacuteries financiegraveres (4)
                                          • Creacuteation drsquoun Portefeuille
                                          • Creacuteation drsquoun Portefeuille (2)
                                          • Creacuteation drsquoun Portefeuille (3)
                                          • Creacuteation drsquoun Portefeuille (4)
                                          • Creacuteation drsquoun Portefeuille Discussion
                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                          • ROLLUP (DB2 amp SQL-Server)
                                          • CUBE (DB2 amp SQL-Server)
                                          • GROUPING SETS
                                          • Rollup Cube Grouping Sets sous MsAccess
                                          • Slide 112
                                          • Slide 113
                                          • Slide 114
                                          • Autres Opeacuterations Utiles
                                          • Sous-Tables Parameacutetreacutees
                                          • Sous-Tables Parameacutetreacutees (2)
                                          • Sous-Tables Parameacutetreacutees (3)
                                          • Sous-Tables Parameacutetreacutees (4)
                                          • Sous-Tables Parameacutetreacutees (5)
                                          • Sous-Tables Parameacutetreacutees (6)
                                          • Sous-Tables Parameacutetreacutees (7)
                                          • Sous-Tables Parameacutetreacutees (8)
                                          • Liste de Choix Multibase
                                          • Liste de Choix Multibase (2)
                                          • Liste de Choix Multibase Reacutesultat
                                          • FIN
                                          • Slide 149

                                            22

                                            Ordre de prioriteacute dopeacuterations

                                            1 Opeacuterateurs de comparaison logique= = gt= gt lt= lt BETWEENAND IN LIKE IS NULL

                                            2 NOT 3 AND 4 OR De gauche agrave droite Les parenthegraveses priment sur lordre ci-dessus

                                            [e][e]

                                            23

                                            Preacutedicat TOP

                                            SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                            SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                            SQL Server eacutequivalent de TOP drsquoAccess

                                            SELECT TOP hellip WITH TIES

                                            >

                                            24

                                            Preacutedicat TOP

                                            Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                            La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                            Pour seacutelectionner les tuples 303132

                                            LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                            Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                            >

                                            25

                                            Clause BETWEEN

                                            Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                            geacuteneacuteriques ndash contrairement agrave LIKE

                                            Quel sera le reacutesultat pour Jones et pourquoi

                                            SELECT FROM S where sname between b and J

                                            Et si on eacutecrit

                                            SELECT FROM S where sname between J and b

                                            ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                            26

                                            Limitations de NOT

                                            Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                            (SELECT CITY FROM S)

                                            Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                            Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                            Hypothegravese de Monde ouvert

                                            27

                                            ANY et ALL

                                            All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                            (SELECT STATUS FROM S WHERE SNAME = BNP)

                                            si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                            si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                            Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                            (SELECT STATUS FROM S WHERE SNAME = BNP)

                                            28

                                            Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                            restriction une condition qui annule cette restriction

                                            Gros deacutegacircts sur le WEB notammentSELECT

                                            FROM S

                                            WHERE city=london Or True

                                            SQL Injection

                                            S SName Status City

                                            s1 smith Paris

                                            s2 Jones 100 london

                                            s3 Blake 30 Paris

                                            s4 Clark 10 london

                                            s5 Adams 30 Athens

                                            29

                                            Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                            True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                            SELECT

                                            FROM S

                                            WHERE status= 100 Or 200

                                            SELECT

                                            FROM S

                                            WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                            SELECT

                                            FROM S

                                            WHERE city=london Or 100

                                            30

                                            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                            Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                            BY et les valeurs individuelles en mecircme temps

                                            ndash Impossible avec SQL standard

                                            31

                                            S Total Qty p1 p2 p3 p4 p5 p6

                                            s1 1300 300 200 400 200 100 100

                                            s2 700 300 400

                                            s3 200 200

                                            s4 900 200 300 400

                                            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                            Tabulations Croiseacutees

                                            32

                                            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                            Transforment les valeurs dattributs en attributsndash Par exemple

                                            les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                            les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                            33

                                            S Total Qty p1 p2 p3 p4 p5 p6

                                            s1 1300 300 200 400 200 100 100

                                            s2 700 300 400

                                            s3 200 200

                                            s4 900 200 300 400

                                            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                            Tabulations Croiseacutees

                                            34

                                            TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                            Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                            Tabulations Croiseacutees

                                            Nouvellescolonnes

                                            35

                                            La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                            On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                            Tabulations Croiseacutees

                                            36

                                            On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                            Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                            On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                            Mais cette clause naffecte pas les calculs des agreacutegats

                                            Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                            Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                            Tabulations Croiseacutees

                                            37

                                            XORSELECT S[S] SStatus SCity

                                            FROM S

                                            WHERE Status=10 Xor city=paris

                                            bull A noter le traitement du nul dans City

                                            38

                                            IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                            bull A noter le traitement du nul dans City

                                            39

                                            Sous-requecirctes

                                            A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                            clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                            rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                            sous-requecircte

                                            SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                            40

                                            Sous-requecirctes

                                            Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                            laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                            vite ou Livrerait au moins aussi vite mais en quantiteacute

                                            plus grande

                                            41

                                            Sous-requecirctes

                                            Skylinendash Tout objet non-domineacute (cacheacute

                                            totalement) par un autre

                                            SELECT X[s] X[p] qty delay

                                            FROM SP X

                                            where not exists

                                            (select from SP as Y

                                            where (Yqty gt= XQty and YDelay lt XDelay or

                                            Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                            order by X[p]

                                            42

                                            Sous-requecirctes Reacutesultat

                                            s p qty delay

                                            s1 p1 300 15

                                            s4 p1 200 13

                                            s3 p2 400 15

                                            s2 p2 300 12

                                            s1 p3 400 17

                                            s4 p4 300 11

                                            s4 p5 400 7

                                            s1 p6 100 8

                                            s p qty Delay

                                            s1 p1 300 15

                                            s1 p2 200 12

                                            s1 p3 400 17

                                            s1 p4 200 11

                                            s1 p5 100 7

                                            s1 p6 100 8

                                            s2 p2 300 12

                                            s3 p2 400 15

                                            s4 p1 200 13

                                            s4 p2 200 15

                                            s4 p4 300 11

                                            s4 p5 400 7

                                            S

                                            43

                                            Sous-requecirctes

                                            On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                            SELECT Count() AS TotalQty

                                            FROM (select distinct qty from sp)

                                            On peut aussi avoir une sous-requecircte dans la clause SELECT

                                            SELECT SP[s] SP[p] qty

                                            (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                            round(qtyTotalQty 3) AS Fraction

                                            FROM SP order by [s]

                                            44

                                            Sous-requecirctes

                                            s p qty TotalQty Fraction

                                            s1 p1 300 1300 0231

                                            s1 p6 100 1300 0077

                                            s1 p5 100 1300 0077

                                            s1 p4 200 1300 0154

                                            s1 p3 400 1300 0308

                                            s1 p2 200 1300 0154

                                            s2 p2 300 300 1

                                            s3 p2 400 400 1

                                            s4 p5 400 1100 0364

                                            s4 p4 300 1100 0273

                                            s4 p2 200 1100 0182

                                            bull ReacutesultatSP

                                            s p qty

                                            s1 p1 300

                                            s1 p2 200

                                            s1 p3 400

                                            s1 p4 200

                                            s1 p5 100

                                            s1 p6 100

                                            s2 p2 300

                                            s3 p2 400

                                            s4 p1 200

                                            s4 p2 200

                                            s4 p4 300

                                            s4 p5 400

                                            45

                                            Sous-requecirctesbull En Mode Graphique

                                            s p qtyTotalQty

                                            Fraction

                                            s1 p1 300 1300 0231

                                            s1 p6 100 1300 0077

                                            s1 p5 100 1300 0077

                                            s1 p4 200 1300 0154

                                            s1 p3 400 1300 0308

                                            s1 p2 200 1300 0154

                                            s2 p2 300 300 1

                                            s3 p2 400 400 1

                                            s4 p5 400 1100 0364

                                            s4 p4 300 1100 0273

                                            s4 p2 200 1100 0182

                                            46

                                            Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                            SELECT (select count(qty) from SP

                                            where qty gt= [seuil svp ]) count() as reacutesultat

                                            FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                            probabiliteacute conditionnelle

                                            47

                                            Clause FROM imbriqueacutee

                                            Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                            Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                            Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                            Agrave essayer

                                            48

                                            Clause FROM imbriqueacuteePossibiliteacutes

                                            ndash Agreacutegations par-dessus UNION ou UNION ALL

                                            ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                            MsAccess

                                            ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                            Mais la reacutefeacuterence au nom de la requecircte OK

                                            49

                                            Clause FROM imbriqueacutee

                                            SELECT sum(weight) AS [poids-total]

                                            FROM (SELECT weight pcity FROM P WHERE City like l

                                            UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                            50

                                            Clause FROM imbriqueacutee

                                            select avg(moy1) as [moyenne-des-moyennes]

                                            FROM

                                            (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                            UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                            51

                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                            select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                            52

                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                            totaux partiels et total geacuteneacuteral

                                            total_Id TotalQty

                                            s1 1300

                                            s2 300

                                            s3 400

                                            s4 400

                                            total Geacuteneacuteral

                                            2400

                                            53

                                            Valeurs nulles

                                            Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                            En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                            DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                            Non WHERE HAVING GROUP BY (rel 1)

                                            Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                            MsAccess Oui DISTINCT Autres clauses

                                            54

                                            Valeurs nulles Si x est nul et y nrsquoest pas alors

                                            1 x gt y est vrai ou faux

                                            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                            SELECT FROM S WHERE CITY =Paris

                                            UNION

                                            SELECT FROM S WHERE NOT CITY = Paris

                                            est toujours pourquoi faire simpleSELECT FROM S

                                            si on peut faire compliqueacute

                                            55

                                            Valeurs nullesValeurs nulles

                                            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                            56

                                            Valeurs nulles

                                            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                            LOG (nul) -gt Error A voir cas par cas

                                            57

                                            Fonctions Scalaires DateTemps

                                            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                            58

                                            Fonctions Scalaires DateTemps

                                            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                            weekday(day(now())-1) AS [day]FROM S

                                            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                            59

                                            Fonctions Scalaires DateTemps

                                            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                            Interval Explanation

                                            Yyyy Year

                                            q Quarter

                                            m Month

                                            y Day of year

                                            d Day

                                            w Weekday

                                            ww Week

                                            h Hour

                                            n Minute

                                            s Second

                                            60

                                            Fonctions Scalaires DateTemps

                                            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                            Test DateDiff

                                            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                            61

                                            Fonctions Scalaires DateTemps

                                            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                            Liste tous les tuples ougrave DateV est de Janvier 2009

                                            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                            62

                                            Fonction Scalaire RND

                                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                            FROM SPORDER BY rnd(qty) DESC

                                            echantillon s rank

                                            s1 502628087997437E-02

                                            s4 0518015921115875

                                            s3 075702953338623

                                            63

                                            Fonction Scalaire RND

                                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                            FROM SPORDER BY rnd(qty) DESC

                                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                            Votre commentaire ici

                                            64

                                            Fonctions Financiegraveres

                                            Fonction DDB Calcule lamortissement deacutegressif

                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                            65

                                            Fonctions Financiegraveres

                                            Fonction DDB Calcule lamortissement deacutegressif

                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                            66

                                            Fonction DDB

                                            insert into DDB (cost salvage life factor amortiss period)

                                            select 100 as cost 70 as salvage 5 as life 1 as factor

                                            DDB(cost salvage life period factor) as amortiss period

                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                            67

                                            Fonction DDB

                                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                            68

                                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                            nombres neacutegatifs

                                            Fonction PMT

                                            69

                                            Fonction PMT

                                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                            Fonction PMT calcul dannuiteacute demprunt

                                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                            preacutesentevaleur_payeacutee surprime

                                            -16049 005 20 200000 -320980 -120980

                                            70

                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                            Et les nuls que log ne supporte pas

                                            Anneacutee relative

                                            Taux

                                            1 4

                                            2 4

                                            3 3

                                            4 5

                                            5 5

                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                            71

                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                            est eacutequivalente agrave

                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                            WHERE XP = SPP) FROM SP

                                            Testez

                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                            72

                                            LIST Function La requecircte

                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                            Comme les tabulations croiseacutees

                                            ndash Mais en + simple

                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                            ndash En mono attribut (2004)

                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                            sous-formulaires

                                            73

                                            LIST Function

                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                            74

                                            GROUP BY avec WHERE

                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                            75

                                            GROUP BY

                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                            Pourquoi

                                            76

                                            GROUP BY avec HAVING

                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                            77

                                            T-GROUP BY Proposeacute pour SQL

                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                            Le rocircle de -join par rapport agrave equi-join

                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                            INT(AVG(QTY)) AS QTY2FROM SP

                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                            78

                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                            FROM SP Vrai ou Faux

                                            79

                                            T-GROUP BY

                                            Reacutesultat

                                            part avg_qty_other_parts part_avg_qty

                                            p1 250 300

                                            p2 262 250

                                            p3 245 400

                                            p4 260 250

                                            p5 260 250

                                            p6 272 100

                                            80

                                            T-GROUP BY

                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                            81

                                            Rangs Non-Denses(Non Dense Ranking)

                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                            s p qtyND-rank

                                            s4 p5 400 1

                                            s3 p2 400 1

                                            s1 p3 400 1

                                            s4 p4 300 4

                                            s2 p2 300 4

                                            s1 p1 300 4

                                            s4 p2 200 7

                                            s1 p4 200 7

                                            s1 p2 200 7

                                            s4 p1 200 7

                                            s1 p6 100 11

                                            s1 p5 100 11

                                            82

                                            Rangs Non-Denses(Graphique MsAccess)

                                            s p qty ND-rank

                                            s4 p5 400 1

                                            s3 p2 400 1

                                            s1 p3 400 1

                                            s4 p4 300 4

                                            s2 p2 300 4

                                            s1 p1 300 4

                                            s4 p2 200 7

                                            s1 p4 200 7

                                            s1 p2 200 7

                                            s4 p1 200 7

                                            s1 p6 100 11

                                            s1 p5 100 11

                                            83

                                            Rangs Denses(Dense Ranking)

                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                            s p qtyD-rank

                                            s1 p3 400 1

                                            s3 p2 400 1

                                            s4 p5 400 1

                                            s1 p1 300 2

                                            s2 p2 300 2

                                            s4 p4 300 2

                                            s1 p4 200 3

                                            s1 p2 200 3

                                            s4 p2 200 3

                                            s4 p1 200 3

                                            s1 p6 100 4

                                            s1 p5 100 4

                                            84

                                            Rangs DensesGraphique MsAccess

                                            s p qty D-rank

                                            s1 p3 400 1

                                            s3 p2 400 1

                                            s4 p5 400 1

                                            s1 p1 300 2

                                            s2 p2 300 2

                                            s4 p4 300 2

                                            s1 p4 200 3

                                            s1 p2 200 3

                                            s4 p2 200 3

                                            s4 p1 200 3

                                            s1 p6 100 4

                                            s1 p5 100 4

                                            85

                                            Distribution

                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                            86

                                            Reacutesultat

                                            s Distribution

                                            s1 0419

                                            s2 0097

                                            s3 0129

                                            s4 0355

                                            87

                                            Distribution Cumulative

                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                            FROM SP

                                            ORDER BY SP[s]

                                            88

                                            Reacutesultat

                                            sDistribution Cumuleacutee

                                            s1 0419

                                            s2 0516

                                            s3 0645

                                            s4 1

                                            89

                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                            - Un outil - Fonction scalaire IIF de SQL Access

                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                            - On peut alternativement utiliser UNION ou UNION ALL

                                            90

                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                            IIf([status]lt30OKgood) AS IIfSimple

                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                            FROM S

                                            GROUP BY S[S] SSName SStatus SCity

                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                            s1 Smith Paris good good

                                            s2 Jones 100 london good VGood

                                            s3 Blake 30 Paris good good

                                            s4 Clark 10 london OK OK

                                            s5 Adams 30 Athens good good

                                            bull Notez le traitement du null

                                            91

                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                            SELECT Ppname weight Very Heavy as Warning

                                            FROM P where weight gt 13

                                            union

                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                            UNION

                                            select Ppname weight Light as warn from p where weight lt 10

                                            ORDER BY warning DESC weight DESC

                                            pname weight Warning

                                            cam 19 Very Heavy

                                            cog 19 Very Heavy

                                            bolt 17 Very Heavy

                                            nut 14 Very Heavy

                                            screw 14 Very Heavy

                                            nut 14 Quite Heavy

                                            screw 14 Quite Heavy

                                            screw 12 Quite Heavy

                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                            92

                                            UNIONPreacutedictions de Valeurs Inconnues

                                            On considegravere AVG(Qty1) pour Qty

                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                            SP

                                            s p qtyQty1

                                            s1 p1 300 400

                                            s1 p2 200

                                            s1 p3 400 600

                                            s1 p4 200 300

                                            s1 p5 100

                                            s1 p6 100 200

                                            s2 p2 300 500

                                            s3 p2 400

                                            s4 p1 200 100

                                            s4 p2 200

                                            s4 p4 300

                                            s4 p5 400

                                            93

                                            UNIONPreacutediction de Valeurs Inconnues

                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                            SP

                                            s p qtyQty1

                                            s1 p1 300 400

                                            s1 p2 200

                                            s1 p3 400 600

                                            s1 p4 200 300

                                            s1 p5 100

                                            s1 p6 100 200

                                            s2 p2 300 500

                                            s3 p2 400

                                            s4 p1 200 100

                                            s4 p2 200

                                            s4 p4 300

                                            s4 p5 400

                                            qty for partpredicted or

                                            unknown Qty1

                                            100 p5

                                            100 predicted value 200

                                            200 p2

                                            200 predicted value 200

                                            300 p4

                                            300 predicted value 450

                                            400 p2

                                            400 p5

                                            400 predicted value 600

                                            94

                                            Tendance

                                            qty Qty1

                                            100 200

                                            200 300

                                            300 400

                                            400 600

                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                            SP est supposeacute avec la DF entre Qty et Qty1

                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                            Graph 3D avec Qty en abscisses

                                            95

                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                            30102008 120 27102008 4

                                            25102008 131 22102008 4

                                            23102008 127 20102008 4

                                            17102008 269 14102008 4

                                            15102008 60 12102008 4

                                            11102008 295 08102008 4

                                            09102008 340 06102008 4

                                            08102008 324 05102008 4

                                            06102008 315 03102008 4

                                            96

                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                            Graphique avec une info-bulle

                                            97

                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                            glissantes

                                            bull CSUM (Cumulative (Running) Sums)

                                            bull MAVG

                                            bull MSUM

                                            bull MDIFF

                                            bull Voir Teradata + loin

                                            98

                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                            99

                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                            Entiers est une table aux avec la colonne de12hellip10

                                            100

                                            Seacuteries financiegraveres

                                            capital taux nval apregraves n ans

                                            taux1val1 apregraves n ans

                                            GainAbs GainRel

                                            100 005 1 105 006 106 1 1

                                            100 005 2 110 006 112 2 2

                                            100 005 3 115 006 119 4 4

                                            100 005 4 121 006 126 5 5

                                            100 005 5 127 006 133 6 6

                                            100 005 6 134 006 141 7 7

                                            100 005 7 140 006 150 10 10

                                            100 005 8 147 006 159 12 12

                                            100 005 9 155 006 168 13 13

                                            100 005 10 162 006 179 17 17

                                            100 005 11 171 006 189 18 18

                                            100 005 12 179 006 201 22 22

                                            100 005 13 188 006 213 25 25

                                            100 005 14 197 006 226 29 29

                                            100 005 15 207 006 239 32 32

                                            100 005 16 218 006 254 36 36

                                            100 005 17 229 006 269 40 40

                                            100 005 18 240 006 285 45 45

                                            100 005 19 252 006 302 50 50

                                            100 005 20 265 006 320 55 55

                                            101

                                            Seacuteries financiegraveres

                                            102

                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                            financiers de la table Produits

                                            bull Dans la limite L de la somme donneacutee

                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                            bull En ordre descendant de prix

                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                            bull Plusieurs actionshellip

                                            103

                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                            P prix

                                            p3 200

                                            p1 200

                                            p2 400

                                            p3 200

                                            p4 100

                                            p6 100

                                            p5 300

                                            p8 300

                                            p7 400

                                            p10 200

                                            p12 300

                                            p13 300

                                            104

                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                            ORDER BY 4 desc 8 123

                                            105

                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                            106

                                            Creacuteation drsquoun Portefeuille Discussion

                                            Creacuteation drsquoun Portefeuille Discussion

                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                            107

                                            Creacuteation drsquoun Portefeuille Discussion

                                            Creacuteation drsquoun Portefeuille Discussion

                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                            108

                                            ROLLUP(DB2 amp SQL-Server)

                                            ROLLUP(DB2 amp SQL-Server)

                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                            109

                                            CUBE(DB2 amp SQL-Server)

                                            CUBE(DB2 amp SQL-Server)

                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                            110

                                            GROUPING SETS

                                            On indique explicitement les groupesndash entre ()

                                            le groupe () est constitueacute de toute la table

                                            SELECT p sum (qty) as tot-qty from SSP P

                                            WHERE SP P = PP AND SP S = SS

                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                            HAVING tot-qty gt 100

                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                            111

                                            Rollup Cube Grouping Setssous MsAccess

                                            Il y en a pas On peut simuler ces manipulations en

                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                            Peut ecirctre laborieux pour le CUBE

                                            112

                                            ROLLUP

                                            Remarquez le laquo null as cityraquo

                                            113

                                            ROLLUP

                                            114

                                            ROLLUP

                                            Et le CUBE

                                            Une solution pour l ambiguiumlteacute

                                            de certains nuls

                                            115

                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                            Wiley (publ)

                                            116

                                            Sous-Tables Parameacutetreacutees

                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                            117

                                            Sous-Tables Parameacutetreacutees

                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                            118

                                            Sous-Tables Parameacutetreacutees

                                            119

                                            Sous-Tables Parameacutetreacutees

                                            120

                                            Sous-Tables Parameacutetreacutees

                                            121

                                            Sous-Tables Parameacutetreacutees

                                            122

                                            Sous-Tables Parameacutetreacutees

                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                            123

                                            Sous-Tables Parameacutetreacutees

                                            Exeacutecution autonome

                                            124

                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                            hellip

                                            125

                                            Liste de Choix Multibase

                                            bull Requecircte Test-liste-de-choix mdb

                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                            126

                                            Liste de Choix MultibaseReacutesultat

                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                            Tregraves bonne question agrave Microsoft

                                            148

                                            FIN

                                            149

                                            • SQL Avanceacute 2010
                                            • Quoi amp Pourquoi
                                            • Slide 3
                                            • Synonymes
                                            • Noms dattributs
                                            • Slide 6
                                            • Slide 7
                                            • Slide 8
                                            • Insertion dans une Vue
                                            • Insertion dans une Vue (2)
                                            • MAJ drsquoune Vue MsAccess
                                            • MAJ drsquoune Vue MsAccess (2)
                                            • Suppression dans une Vue MsAccess
                                            • MsAccess Leacutegendes
                                            • Expressions de valeur
                                            • Expressions de valeur (2)
                                            • Pour en savoir + sur les attributs dynamiques
                                            • UNION et Noms Drsquoattributs
                                            • UNION et ORDER BY
                                            • ORDER BY et expressions de valeur
                                            • ORDER BY et expressions de valeur (2)
                                            • Ordre de prioriteacute dopeacuterations
                                            • Preacutedicat TOP
                                            • Preacutedicat TOP (2)
                                            • Clause BETWEEN
                                            • Limitations de NOT
                                            • ANY et ALL
                                            • Injection SQL
                                            • Injection SQL (2)
                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                            • Tabulations Croiseacutees
                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                            • Tabulations Croiseacutees (2)
                                            • Tabulations Croiseacutees (3)
                                            • Tabulations Croiseacutees (4)
                                            • Tabulations Croiseacutees (5)
                                            • XOR
                                            • IMP
                                            • Sous-requecirctes
                                            • Sous-requecirctes (2)
                                            • Sous-requecirctes (3)
                                            • Sous-requecirctes (4)
                                            • Sous-requecirctes (5)
                                            • Sous-requecirctes (6)
                                            • Sous-requecirctes (7)
                                            • Application aux Probabiliteacutes
                                            • Clause FROM imbriqueacutee
                                            • Clause FROM imbriqueacutee (2)
                                            • Clause FROM imbriqueacutee (3)
                                            • Clause FROM imbriqueacutee (4)
                                            • Clause FROM imbriqueacutee (5)
                                            • Clause FROM imbriqueacutee (6)
                                            • Valeurs nulles
                                            • Valeurs nulles (2)
                                            • Valeurs nulles (3)
                                            • Valeurs nulles (4)
                                            • Fonctions Scalaires DateTemps
                                            • Fonctions Scalaires DateTemps (2)
                                            • Fonctions Scalaires DateTemps (3)
                                            • Fonctions Scalaires DateTemps (4)
                                            • Fonctions Scalaires DateTemps (5)
                                            • Fonction Scalaire RND
                                            • Fonction Scalaire RND (2)
                                            • Fonctions Financiegraveres
                                            • Fonctions Financiegraveres (2)
                                            • Fonction DDB
                                            • Fonction DDB (2)
                                            • Fonction PMT
                                            • Fonction PMT (2)
                                            • Placement agrave taux variable
                                            • GROUP BY
                                            • LIST Function
                                            • LIST Function (2)
                                            • GROUP BY avec WHERE
                                            • GROUP BY (2)
                                            • GROUP BY avec HAVING
                                            • T-GROUP BY
                                            • T-GROUP BY (2)
                                            • T-GROUP BY (3)
                                            • T-GROUP BY (4)
                                            • Rangs Non-Denses (Non Dense Ranking)
                                            • Rangs Non-Denses (Graphique MsAccess)
                                            • Rangs Denses (Dense Ranking)
                                            • Rangs Denses Graphique MsAccess
                                            • Distribution
                                            • Reacutesultat
                                            • Distribution Cumulative
                                            • Reacutesultat (2)
                                            • Cateacutegorisation
                                            • Cateacutegorisation (2)
                                            • Cateacutegorisation (3)
                                            • UNION Preacutedictions de Valeurs Inconnues
                                            • UNION Preacutediction de Valeurs Inconnues
                                            • Tendance
                                            • Moyenne Glissante
                                            • Moyenne Glissante (2)
                                            • Moyenne Glissante (3)
                                            • Seacuteries financiegraveres
                                            • Seacuteries financiegraveres (2)
                                            • Seacuteries financiegraveres (3)
                                            • Seacuteries financiegraveres (4)
                                            • Creacuteation drsquoun Portefeuille
                                            • Creacuteation drsquoun Portefeuille (2)
                                            • Creacuteation drsquoun Portefeuille (3)
                                            • Creacuteation drsquoun Portefeuille (4)
                                            • Creacuteation drsquoun Portefeuille Discussion
                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                            • ROLLUP (DB2 amp SQL-Server)
                                            • CUBE (DB2 amp SQL-Server)
                                            • GROUPING SETS
                                            • Rollup Cube Grouping Sets sous MsAccess
                                            • Slide 112
                                            • Slide 113
                                            • Slide 114
                                            • Autres Opeacuterations Utiles
                                            • Sous-Tables Parameacutetreacutees
                                            • Sous-Tables Parameacutetreacutees (2)
                                            • Sous-Tables Parameacutetreacutees (3)
                                            • Sous-Tables Parameacutetreacutees (4)
                                            • Sous-Tables Parameacutetreacutees (5)
                                            • Sous-Tables Parameacutetreacutees (6)
                                            • Sous-Tables Parameacutetreacutees (7)
                                            • Sous-Tables Parameacutetreacutees (8)
                                            • Liste de Choix Multibase
                                            • Liste de Choix Multibase (2)
                                            • Liste de Choix Multibase Reacutesultat
                                            • FIN
                                            • Slide 149

                                              23

                                              Preacutedicat TOP

                                              SELECT TOP 3 b cSELECT TOP 10 b c Pas la mecircme seacutemantique pour Access amp

                                              SQL Serverndash Ce dernier ne tient pas compte drsquoex-equos

                                              SQL Server eacutequivalent de TOP drsquoAccess

                                              SELECT TOP hellip WITH TIES

                                              >

                                              24

                                              Preacutedicat TOP

                                              Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                              La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                              Pour seacutelectionner les tuples 303132

                                              LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                              Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                              >

                                              25

                                              Clause BETWEEN

                                              Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                              geacuteneacuteriques ndash contrairement agrave LIKE

                                              Quel sera le reacutesultat pour Jones et pourquoi

                                              SELECT FROM S where sname between b and J

                                              Et si on eacutecrit

                                              SELECT FROM S where sname between J and b

                                              ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                              26

                                              Limitations de NOT

                                              Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                              (SELECT CITY FROM S)

                                              Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                              Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                              Hypothegravese de Monde ouvert

                                              27

                                              ANY et ALL

                                              All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                              (SELECT STATUS FROM S WHERE SNAME = BNP)

                                              si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                              si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                              Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                              (SELECT STATUS FROM S WHERE SNAME = BNP)

                                              28

                                              Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                              restriction une condition qui annule cette restriction

                                              Gros deacutegacircts sur le WEB notammentSELECT

                                              FROM S

                                              WHERE city=london Or True

                                              SQL Injection

                                              S SName Status City

                                              s1 smith Paris

                                              s2 Jones 100 london

                                              s3 Blake 30 Paris

                                              s4 Clark 10 london

                                              s5 Adams 30 Athens

                                              29

                                              Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                              True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                              SELECT

                                              FROM S

                                              WHERE status= 100 Or 200

                                              SELECT

                                              FROM S

                                              WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                              SELECT

                                              FROM S

                                              WHERE city=london Or 100

                                              30

                                              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                              Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                              BY et les valeurs individuelles en mecircme temps

                                              ndash Impossible avec SQL standard

                                              31

                                              S Total Qty p1 p2 p3 p4 p5 p6

                                              s1 1300 300 200 400 200 100 100

                                              s2 700 300 400

                                              s3 200 200

                                              s4 900 200 300 400

                                              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                              Tabulations Croiseacutees

                                              32

                                              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                              Transforment les valeurs dattributs en attributsndash Par exemple

                                              les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                              les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                              33

                                              S Total Qty p1 p2 p3 p4 p5 p6

                                              s1 1300 300 200 400 200 100 100

                                              s2 700 300 400

                                              s3 200 200

                                              s4 900 200 300 400

                                              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                              Tabulations Croiseacutees

                                              34

                                              TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                              Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                              Tabulations Croiseacutees

                                              Nouvellescolonnes

                                              35

                                              La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                              On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                              Tabulations Croiseacutees

                                              36

                                              On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                              Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                              On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                              Mais cette clause naffecte pas les calculs des agreacutegats

                                              Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                              Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                              Tabulations Croiseacutees

                                              37

                                              XORSELECT S[S] SStatus SCity

                                              FROM S

                                              WHERE Status=10 Xor city=paris

                                              bull A noter le traitement du nul dans City

                                              38

                                              IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                              bull A noter le traitement du nul dans City

                                              39

                                              Sous-requecirctes

                                              A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                              clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                              rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                              sous-requecircte

                                              SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                              40

                                              Sous-requecirctes

                                              Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                              laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                              vite ou Livrerait au moins aussi vite mais en quantiteacute

                                              plus grande

                                              41

                                              Sous-requecirctes

                                              Skylinendash Tout objet non-domineacute (cacheacute

                                              totalement) par un autre

                                              SELECT X[s] X[p] qty delay

                                              FROM SP X

                                              where not exists

                                              (select from SP as Y

                                              where (Yqty gt= XQty and YDelay lt XDelay or

                                              Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                              order by X[p]

                                              42

                                              Sous-requecirctes Reacutesultat

                                              s p qty delay

                                              s1 p1 300 15

                                              s4 p1 200 13

                                              s3 p2 400 15

                                              s2 p2 300 12

                                              s1 p3 400 17

                                              s4 p4 300 11

                                              s4 p5 400 7

                                              s1 p6 100 8

                                              s p qty Delay

                                              s1 p1 300 15

                                              s1 p2 200 12

                                              s1 p3 400 17

                                              s1 p4 200 11

                                              s1 p5 100 7

                                              s1 p6 100 8

                                              s2 p2 300 12

                                              s3 p2 400 15

                                              s4 p1 200 13

                                              s4 p2 200 15

                                              s4 p4 300 11

                                              s4 p5 400 7

                                              S

                                              43

                                              Sous-requecirctes

                                              On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                              SELECT Count() AS TotalQty

                                              FROM (select distinct qty from sp)

                                              On peut aussi avoir une sous-requecircte dans la clause SELECT

                                              SELECT SP[s] SP[p] qty

                                              (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                              round(qtyTotalQty 3) AS Fraction

                                              FROM SP order by [s]

                                              44

                                              Sous-requecirctes

                                              s p qty TotalQty Fraction

                                              s1 p1 300 1300 0231

                                              s1 p6 100 1300 0077

                                              s1 p5 100 1300 0077

                                              s1 p4 200 1300 0154

                                              s1 p3 400 1300 0308

                                              s1 p2 200 1300 0154

                                              s2 p2 300 300 1

                                              s3 p2 400 400 1

                                              s4 p5 400 1100 0364

                                              s4 p4 300 1100 0273

                                              s4 p2 200 1100 0182

                                              bull ReacutesultatSP

                                              s p qty

                                              s1 p1 300

                                              s1 p2 200

                                              s1 p3 400

                                              s1 p4 200

                                              s1 p5 100

                                              s1 p6 100

                                              s2 p2 300

                                              s3 p2 400

                                              s4 p1 200

                                              s4 p2 200

                                              s4 p4 300

                                              s4 p5 400

                                              45

                                              Sous-requecirctesbull En Mode Graphique

                                              s p qtyTotalQty

                                              Fraction

                                              s1 p1 300 1300 0231

                                              s1 p6 100 1300 0077

                                              s1 p5 100 1300 0077

                                              s1 p4 200 1300 0154

                                              s1 p3 400 1300 0308

                                              s1 p2 200 1300 0154

                                              s2 p2 300 300 1

                                              s3 p2 400 400 1

                                              s4 p5 400 1100 0364

                                              s4 p4 300 1100 0273

                                              s4 p2 200 1100 0182

                                              46

                                              Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                              SELECT (select count(qty) from SP

                                              where qty gt= [seuil svp ]) count() as reacutesultat

                                              FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                              probabiliteacute conditionnelle

                                              47

                                              Clause FROM imbriqueacutee

                                              Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                              Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                              Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                              Agrave essayer

                                              48

                                              Clause FROM imbriqueacuteePossibiliteacutes

                                              ndash Agreacutegations par-dessus UNION ou UNION ALL

                                              ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                              MsAccess

                                              ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                              Mais la reacutefeacuterence au nom de la requecircte OK

                                              49

                                              Clause FROM imbriqueacutee

                                              SELECT sum(weight) AS [poids-total]

                                              FROM (SELECT weight pcity FROM P WHERE City like l

                                              UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                              50

                                              Clause FROM imbriqueacutee

                                              select avg(moy1) as [moyenne-des-moyennes]

                                              FROM

                                              (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                              UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                              51

                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                              select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                              52

                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                              totaux partiels et total geacuteneacuteral

                                              total_Id TotalQty

                                              s1 1300

                                              s2 300

                                              s3 400

                                              s4 400

                                              total Geacuteneacuteral

                                              2400

                                              53

                                              Valeurs nulles

                                              Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                              En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                              DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                              Non WHERE HAVING GROUP BY (rel 1)

                                              Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                              MsAccess Oui DISTINCT Autres clauses

                                              54

                                              Valeurs nulles Si x est nul et y nrsquoest pas alors

                                              1 x gt y est vrai ou faux

                                              2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                              DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                              SELECT FROM S WHERE CITY =Paris

                                              UNION

                                              SELECT FROM S WHERE NOT CITY = Paris

                                              est toujours pourquoi faire simpleSELECT FROM S

                                              si on peut faire compliqueacute

                                              55

                                              Valeurs nullesValeurs nulles

                                              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                              56

                                              Valeurs nulles

                                              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                              LOG (nul) -gt Error A voir cas par cas

                                              57

                                              Fonctions Scalaires DateTemps

                                              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                              58

                                              Fonctions Scalaires DateTemps

                                              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                              weekday(day(now())-1) AS [day]FROM S

                                              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                              59

                                              Fonctions Scalaires DateTemps

                                              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                              Interval Explanation

                                              Yyyy Year

                                              q Quarter

                                              m Month

                                              y Day of year

                                              d Day

                                              w Weekday

                                              ww Week

                                              h Hour

                                              n Minute

                                              s Second

                                              60

                                              Fonctions Scalaires DateTemps

                                              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                              Test DateDiff

                                              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                              61

                                              Fonctions Scalaires DateTemps

                                              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                              Liste tous les tuples ougrave DateV est de Janvier 2009

                                              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                              62

                                              Fonction Scalaire RND

                                              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                              FROM SPORDER BY rnd(qty) DESC

                                              echantillon s rank

                                              s1 502628087997437E-02

                                              s4 0518015921115875

                                              s3 075702953338623

                                              63

                                              Fonction Scalaire RND

                                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                              FROM SPORDER BY rnd(qty) DESC

                                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                              Votre commentaire ici

                                              64

                                              Fonctions Financiegraveres

                                              Fonction DDB Calcule lamortissement deacutegressif

                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                              65

                                              Fonctions Financiegraveres

                                              Fonction DDB Calcule lamortissement deacutegressif

                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                              66

                                              Fonction DDB

                                              insert into DDB (cost salvage life factor amortiss period)

                                              select 100 as cost 70 as salvage 5 as life 1 as factor

                                              DDB(cost salvage life period factor) as amortiss period

                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                              67

                                              Fonction DDB

                                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                              68

                                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                              nombres neacutegatifs

                                              Fonction PMT

                                              69

                                              Fonction PMT

                                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                              Fonction PMT calcul dannuiteacute demprunt

                                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                              preacutesentevaleur_payeacutee surprime

                                              -16049 005 20 200000 -320980 -120980

                                              70

                                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                              Et les nuls que log ne supporte pas

                                              Anneacutee relative

                                              Taux

                                              1 4

                                              2 4

                                              3 3

                                              4 5

                                              5 5

                                              Voir + dans le livre laquo SQL Design Patterns raquo

                                              71

                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                              est eacutequivalente agrave

                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                              WHERE XP = SPP) FROM SP

                                              Testez

                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                              72

                                              LIST Function La requecircte

                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                              Comme les tabulations croiseacutees

                                              ndash Mais en + simple

                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                              ndash En mono attribut (2004)

                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                              sous-formulaires

                                              73

                                              LIST Function

                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                              74

                                              GROUP BY avec WHERE

                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                              75

                                              GROUP BY

                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                              Pourquoi

                                              76

                                              GROUP BY avec HAVING

                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                              77

                                              T-GROUP BY Proposeacute pour SQL

                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                              Le rocircle de -join par rapport agrave equi-join

                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                              INT(AVG(QTY)) AS QTY2FROM SP

                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                              78

                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                              FROM SP Vrai ou Faux

                                              79

                                              T-GROUP BY

                                              Reacutesultat

                                              part avg_qty_other_parts part_avg_qty

                                              p1 250 300

                                              p2 262 250

                                              p3 245 400

                                              p4 260 250

                                              p5 260 250

                                              p6 272 100

                                              80

                                              T-GROUP BY

                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                              81

                                              Rangs Non-Denses(Non Dense Ranking)

                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                              s p qtyND-rank

                                              s4 p5 400 1

                                              s3 p2 400 1

                                              s1 p3 400 1

                                              s4 p4 300 4

                                              s2 p2 300 4

                                              s1 p1 300 4

                                              s4 p2 200 7

                                              s1 p4 200 7

                                              s1 p2 200 7

                                              s4 p1 200 7

                                              s1 p6 100 11

                                              s1 p5 100 11

                                              82

                                              Rangs Non-Denses(Graphique MsAccess)

                                              s p qty ND-rank

                                              s4 p5 400 1

                                              s3 p2 400 1

                                              s1 p3 400 1

                                              s4 p4 300 4

                                              s2 p2 300 4

                                              s1 p1 300 4

                                              s4 p2 200 7

                                              s1 p4 200 7

                                              s1 p2 200 7

                                              s4 p1 200 7

                                              s1 p6 100 11

                                              s1 p5 100 11

                                              83

                                              Rangs Denses(Dense Ranking)

                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                              s p qtyD-rank

                                              s1 p3 400 1

                                              s3 p2 400 1

                                              s4 p5 400 1

                                              s1 p1 300 2

                                              s2 p2 300 2

                                              s4 p4 300 2

                                              s1 p4 200 3

                                              s1 p2 200 3

                                              s4 p2 200 3

                                              s4 p1 200 3

                                              s1 p6 100 4

                                              s1 p5 100 4

                                              84

                                              Rangs DensesGraphique MsAccess

                                              s p qty D-rank

                                              s1 p3 400 1

                                              s3 p2 400 1

                                              s4 p5 400 1

                                              s1 p1 300 2

                                              s2 p2 300 2

                                              s4 p4 300 2

                                              s1 p4 200 3

                                              s1 p2 200 3

                                              s4 p2 200 3

                                              s4 p1 200 3

                                              s1 p6 100 4

                                              s1 p5 100 4

                                              85

                                              Distribution

                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                              86

                                              Reacutesultat

                                              s Distribution

                                              s1 0419

                                              s2 0097

                                              s3 0129

                                              s4 0355

                                              87

                                              Distribution Cumulative

                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                              FROM SP

                                              ORDER BY SP[s]

                                              88

                                              Reacutesultat

                                              sDistribution Cumuleacutee

                                              s1 0419

                                              s2 0516

                                              s3 0645

                                              s4 1

                                              89

                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                              - Un outil - Fonction scalaire IIF de SQL Access

                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                              - On peut alternativement utiliser UNION ou UNION ALL

                                              90

                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                              IIf([status]lt30OKgood) AS IIfSimple

                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                              FROM S

                                              GROUP BY S[S] SSName SStatus SCity

                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                              s1 Smith Paris good good

                                              s2 Jones 100 london good VGood

                                              s3 Blake 30 Paris good good

                                              s4 Clark 10 london OK OK

                                              s5 Adams 30 Athens good good

                                              bull Notez le traitement du null

                                              91

                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                              SELECT Ppname weight Very Heavy as Warning

                                              FROM P where weight gt 13

                                              union

                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                              UNION

                                              select Ppname weight Light as warn from p where weight lt 10

                                              ORDER BY warning DESC weight DESC

                                              pname weight Warning

                                              cam 19 Very Heavy

                                              cog 19 Very Heavy

                                              bolt 17 Very Heavy

                                              nut 14 Very Heavy

                                              screw 14 Very Heavy

                                              nut 14 Quite Heavy

                                              screw 14 Quite Heavy

                                              screw 12 Quite Heavy

                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                              92

                                              UNIONPreacutedictions de Valeurs Inconnues

                                              On considegravere AVG(Qty1) pour Qty

                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                              SP

                                              s p qtyQty1

                                              s1 p1 300 400

                                              s1 p2 200

                                              s1 p3 400 600

                                              s1 p4 200 300

                                              s1 p5 100

                                              s1 p6 100 200

                                              s2 p2 300 500

                                              s3 p2 400

                                              s4 p1 200 100

                                              s4 p2 200

                                              s4 p4 300

                                              s4 p5 400

                                              93

                                              UNIONPreacutediction de Valeurs Inconnues

                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                              SP

                                              s p qtyQty1

                                              s1 p1 300 400

                                              s1 p2 200

                                              s1 p3 400 600

                                              s1 p4 200 300

                                              s1 p5 100

                                              s1 p6 100 200

                                              s2 p2 300 500

                                              s3 p2 400

                                              s4 p1 200 100

                                              s4 p2 200

                                              s4 p4 300

                                              s4 p5 400

                                              qty for partpredicted or

                                              unknown Qty1

                                              100 p5

                                              100 predicted value 200

                                              200 p2

                                              200 predicted value 200

                                              300 p4

                                              300 predicted value 450

                                              400 p2

                                              400 p5

                                              400 predicted value 600

                                              94

                                              Tendance

                                              qty Qty1

                                              100 200

                                              200 300

                                              300 400

                                              400 600

                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                              SP est supposeacute avec la DF entre Qty et Qty1

                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                              Graph 3D avec Qty en abscisses

                                              95

                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                              30102008 120 27102008 4

                                              25102008 131 22102008 4

                                              23102008 127 20102008 4

                                              17102008 269 14102008 4

                                              15102008 60 12102008 4

                                              11102008 295 08102008 4

                                              09102008 340 06102008 4

                                              08102008 324 05102008 4

                                              06102008 315 03102008 4

                                              96

                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                              Graphique avec une info-bulle

                                              97

                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                              glissantes

                                              bull CSUM (Cumulative (Running) Sums)

                                              bull MAVG

                                              bull MSUM

                                              bull MDIFF

                                              bull Voir Teradata + loin

                                              98

                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                              99

                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                              Entiers est une table aux avec la colonne de12hellip10

                                              100

                                              Seacuteries financiegraveres

                                              capital taux nval apregraves n ans

                                              taux1val1 apregraves n ans

                                              GainAbs GainRel

                                              100 005 1 105 006 106 1 1

                                              100 005 2 110 006 112 2 2

                                              100 005 3 115 006 119 4 4

                                              100 005 4 121 006 126 5 5

                                              100 005 5 127 006 133 6 6

                                              100 005 6 134 006 141 7 7

                                              100 005 7 140 006 150 10 10

                                              100 005 8 147 006 159 12 12

                                              100 005 9 155 006 168 13 13

                                              100 005 10 162 006 179 17 17

                                              100 005 11 171 006 189 18 18

                                              100 005 12 179 006 201 22 22

                                              100 005 13 188 006 213 25 25

                                              100 005 14 197 006 226 29 29

                                              100 005 15 207 006 239 32 32

                                              100 005 16 218 006 254 36 36

                                              100 005 17 229 006 269 40 40

                                              100 005 18 240 006 285 45 45

                                              100 005 19 252 006 302 50 50

                                              100 005 20 265 006 320 55 55

                                              101

                                              Seacuteries financiegraveres

                                              102

                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                              financiers de la table Produits

                                              bull Dans la limite L de la somme donneacutee

                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                              bull En ordre descendant de prix

                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                              bull Plusieurs actionshellip

                                              103

                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                              P prix

                                              p3 200

                                              p1 200

                                              p2 400

                                              p3 200

                                              p4 100

                                              p6 100

                                              p5 300

                                              p8 300

                                              p7 400

                                              p10 200

                                              p12 300

                                              p13 300

                                              104

                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                              ORDER BY 4 desc 8 123

                                              105

                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                              106

                                              Creacuteation drsquoun Portefeuille Discussion

                                              Creacuteation drsquoun Portefeuille Discussion

                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                              107

                                              Creacuteation drsquoun Portefeuille Discussion

                                              Creacuteation drsquoun Portefeuille Discussion

                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                              108

                                              ROLLUP(DB2 amp SQL-Server)

                                              ROLLUP(DB2 amp SQL-Server)

                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                              109

                                              CUBE(DB2 amp SQL-Server)

                                              CUBE(DB2 amp SQL-Server)

                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                              110

                                              GROUPING SETS

                                              On indique explicitement les groupesndash entre ()

                                              le groupe () est constitueacute de toute la table

                                              SELECT p sum (qty) as tot-qty from SSP P

                                              WHERE SP P = PP AND SP S = SS

                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                              HAVING tot-qty gt 100

                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                              111

                                              Rollup Cube Grouping Setssous MsAccess

                                              Il y en a pas On peut simuler ces manipulations en

                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                              Peut ecirctre laborieux pour le CUBE

                                              112

                                              ROLLUP

                                              Remarquez le laquo null as cityraquo

                                              113

                                              ROLLUP

                                              114

                                              ROLLUP

                                              Et le CUBE

                                              Une solution pour l ambiguiumlteacute

                                              de certains nuls

                                              115

                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                              Wiley (publ)

                                              116

                                              Sous-Tables Parameacutetreacutees

                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                              117

                                              Sous-Tables Parameacutetreacutees

                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                              118

                                              Sous-Tables Parameacutetreacutees

                                              119

                                              Sous-Tables Parameacutetreacutees

                                              120

                                              Sous-Tables Parameacutetreacutees

                                              121

                                              Sous-Tables Parameacutetreacutees

                                              122

                                              Sous-Tables Parameacutetreacutees

                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                              123

                                              Sous-Tables Parameacutetreacutees

                                              Exeacutecution autonome

                                              124

                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                              hellip

                                              125

                                              Liste de Choix Multibase

                                              bull Requecircte Test-liste-de-choix mdb

                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                              126

                                              Liste de Choix MultibaseReacutesultat

                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                              Tregraves bonne question agrave Microsoft

                                              148

                                              FIN

                                              149

                                              • SQL Avanceacute 2010
                                              • Quoi amp Pourquoi
                                              • Slide 3
                                              • Synonymes
                                              • Noms dattributs
                                              • Slide 6
                                              • Slide 7
                                              • Slide 8
                                              • Insertion dans une Vue
                                              • Insertion dans une Vue (2)
                                              • MAJ drsquoune Vue MsAccess
                                              • MAJ drsquoune Vue MsAccess (2)
                                              • Suppression dans une Vue MsAccess
                                              • MsAccess Leacutegendes
                                              • Expressions de valeur
                                              • Expressions de valeur (2)
                                              • Pour en savoir + sur les attributs dynamiques
                                              • UNION et Noms Drsquoattributs
                                              • UNION et ORDER BY
                                              • ORDER BY et expressions de valeur
                                              • ORDER BY et expressions de valeur (2)
                                              • Ordre de prioriteacute dopeacuterations
                                              • Preacutedicat TOP
                                              • Preacutedicat TOP (2)
                                              • Clause BETWEEN
                                              • Limitations de NOT
                                              • ANY et ALL
                                              • Injection SQL
                                              • Injection SQL (2)
                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                              • Tabulations Croiseacutees
                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                              • Tabulations Croiseacutees (2)
                                              • Tabulations Croiseacutees (3)
                                              • Tabulations Croiseacutees (4)
                                              • Tabulations Croiseacutees (5)
                                              • XOR
                                              • IMP
                                              • Sous-requecirctes
                                              • Sous-requecirctes (2)
                                              • Sous-requecirctes (3)
                                              • Sous-requecirctes (4)
                                              • Sous-requecirctes (5)
                                              • Sous-requecirctes (6)
                                              • Sous-requecirctes (7)
                                              • Application aux Probabiliteacutes
                                              • Clause FROM imbriqueacutee
                                              • Clause FROM imbriqueacutee (2)
                                              • Clause FROM imbriqueacutee (3)
                                              • Clause FROM imbriqueacutee (4)
                                              • Clause FROM imbriqueacutee (5)
                                              • Clause FROM imbriqueacutee (6)
                                              • Valeurs nulles
                                              • Valeurs nulles (2)
                                              • Valeurs nulles (3)
                                              • Valeurs nulles (4)
                                              • Fonctions Scalaires DateTemps
                                              • Fonctions Scalaires DateTemps (2)
                                              • Fonctions Scalaires DateTemps (3)
                                              • Fonctions Scalaires DateTemps (4)
                                              • Fonctions Scalaires DateTemps (5)
                                              • Fonction Scalaire RND
                                              • Fonction Scalaire RND (2)
                                              • Fonctions Financiegraveres
                                              • Fonctions Financiegraveres (2)
                                              • Fonction DDB
                                              • Fonction DDB (2)
                                              • Fonction PMT
                                              • Fonction PMT (2)
                                              • Placement agrave taux variable
                                              • GROUP BY
                                              • LIST Function
                                              • LIST Function (2)
                                              • GROUP BY avec WHERE
                                              • GROUP BY (2)
                                              • GROUP BY avec HAVING
                                              • T-GROUP BY
                                              • T-GROUP BY (2)
                                              • T-GROUP BY (3)
                                              • T-GROUP BY (4)
                                              • Rangs Non-Denses (Non Dense Ranking)
                                              • Rangs Non-Denses (Graphique MsAccess)
                                              • Rangs Denses (Dense Ranking)
                                              • Rangs Denses Graphique MsAccess
                                              • Distribution
                                              • Reacutesultat
                                              • Distribution Cumulative
                                              • Reacutesultat (2)
                                              • Cateacutegorisation
                                              • Cateacutegorisation (2)
                                              • Cateacutegorisation (3)
                                              • UNION Preacutedictions de Valeurs Inconnues
                                              • UNION Preacutediction de Valeurs Inconnues
                                              • Tendance
                                              • Moyenne Glissante
                                              • Moyenne Glissante (2)
                                              • Moyenne Glissante (3)
                                              • Seacuteries financiegraveres
                                              • Seacuteries financiegraveres (2)
                                              • Seacuteries financiegraveres (3)
                                              • Seacuteries financiegraveres (4)
                                              • Creacuteation drsquoun Portefeuille
                                              • Creacuteation drsquoun Portefeuille (2)
                                              • Creacuteation drsquoun Portefeuille (3)
                                              • Creacuteation drsquoun Portefeuille (4)
                                              • Creacuteation drsquoun Portefeuille Discussion
                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                              • ROLLUP (DB2 amp SQL-Server)
                                              • CUBE (DB2 amp SQL-Server)
                                              • GROUPING SETS
                                              • Rollup Cube Grouping Sets sous MsAccess
                                              • Slide 112
                                              • Slide 113
                                              • Slide 114
                                              • Autres Opeacuterations Utiles
                                              • Sous-Tables Parameacutetreacutees
                                              • Sous-Tables Parameacutetreacutees (2)
                                              • Sous-Tables Parameacutetreacutees (3)
                                              • Sous-Tables Parameacutetreacutees (4)
                                              • Sous-Tables Parameacutetreacutees (5)
                                              • Sous-Tables Parameacutetreacutees (6)
                                              • Sous-Tables Parameacutetreacutees (7)
                                              • Sous-Tables Parameacutetreacutees (8)
                                              • Liste de Choix Multibase
                                              • Liste de Choix Multibase (2)
                                              • Liste de Choix Multibase Reacutesultat
                                              • FIN
                                              • Slide 149

                                                24

                                                Preacutedicat TOP

                                                Sous MySQL and PostgreSQL crsquoest une clause seacutepareacutee dite LIMITndash Select hellip FROMhellip WHEREhellipORDERBYLIMIT 3

                                                La syntaxe est par ailleurs eacutetendue agrave la seacutelection apregraves les 1egravers eacuteleacutements

                                                Pour seacutelectionner les tuples 303132

                                                LIMIT 29 3 ou LIMIT 3 OFFSET 29 Traitement des ex-equos

                                                Voir la doc Peut-on faire comme fait OFFSET sous MsAccess

                                                >

                                                25

                                                Clause BETWEEN

                                                Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                                geacuteneacuteriques ndash contrairement agrave LIKE

                                                Quel sera le reacutesultat pour Jones et pourquoi

                                                SELECT FROM S where sname between b and J

                                                Et si on eacutecrit

                                                SELECT FROM S where sname between J and b

                                                ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                                26

                                                Limitations de NOT

                                                Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                                (SELECT CITY FROM S)

                                                Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                                Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                                Hypothegravese de Monde ouvert

                                                27

                                                ANY et ALL

                                                All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                                (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                                si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                                Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                                (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                28

                                                Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                                restriction une condition qui annule cette restriction

                                                Gros deacutegacircts sur le WEB notammentSELECT

                                                FROM S

                                                WHERE city=london Or True

                                                SQL Injection

                                                S SName Status City

                                                s1 smith Paris

                                                s2 Jones 100 london

                                                s3 Blake 30 Paris

                                                s4 Clark 10 london

                                                s5 Adams 30 Athens

                                                29

                                                Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                                True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                                SELECT

                                                FROM S

                                                WHERE status= 100 Or 200

                                                SELECT

                                                FROM S

                                                WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                                SELECT

                                                FROM S

                                                WHERE city=london Or 100

                                                30

                                                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                BY et les valeurs individuelles en mecircme temps

                                                ndash Impossible avec SQL standard

                                                31

                                                S Total Qty p1 p2 p3 p4 p5 p6

                                                s1 1300 300 200 400 200 100 100

                                                s2 700 300 400

                                                s3 200 200

                                                s4 900 200 300 400

                                                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                Tabulations Croiseacutees

                                                32

                                                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                Transforment les valeurs dattributs en attributsndash Par exemple

                                                les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                33

                                                S Total Qty p1 p2 p3 p4 p5 p6

                                                s1 1300 300 200 400 200 100 100

                                                s2 700 300 400

                                                s3 200 200

                                                s4 900 200 300 400

                                                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                Tabulations Croiseacutees

                                                34

                                                TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                Tabulations Croiseacutees

                                                Nouvellescolonnes

                                                35

                                                La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                Tabulations Croiseacutees

                                                36

                                                On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                Mais cette clause naffecte pas les calculs des agreacutegats

                                                Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                Tabulations Croiseacutees

                                                37

                                                XORSELECT S[S] SStatus SCity

                                                FROM S

                                                WHERE Status=10 Xor city=paris

                                                bull A noter le traitement du nul dans City

                                                38

                                                IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                bull A noter le traitement du nul dans City

                                                39

                                                Sous-requecirctes

                                                A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                sous-requecircte

                                                SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                40

                                                Sous-requecirctes

                                                Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                plus grande

                                                41

                                                Sous-requecirctes

                                                Skylinendash Tout objet non-domineacute (cacheacute

                                                totalement) par un autre

                                                SELECT X[s] X[p] qty delay

                                                FROM SP X

                                                where not exists

                                                (select from SP as Y

                                                where (Yqty gt= XQty and YDelay lt XDelay or

                                                Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                order by X[p]

                                                42

                                                Sous-requecirctes Reacutesultat

                                                s p qty delay

                                                s1 p1 300 15

                                                s4 p1 200 13

                                                s3 p2 400 15

                                                s2 p2 300 12

                                                s1 p3 400 17

                                                s4 p4 300 11

                                                s4 p5 400 7

                                                s1 p6 100 8

                                                s p qty Delay

                                                s1 p1 300 15

                                                s1 p2 200 12

                                                s1 p3 400 17

                                                s1 p4 200 11

                                                s1 p5 100 7

                                                s1 p6 100 8

                                                s2 p2 300 12

                                                s3 p2 400 15

                                                s4 p1 200 13

                                                s4 p2 200 15

                                                s4 p4 300 11

                                                s4 p5 400 7

                                                S

                                                43

                                                Sous-requecirctes

                                                On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                SELECT Count() AS TotalQty

                                                FROM (select distinct qty from sp)

                                                On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                SELECT SP[s] SP[p] qty

                                                (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                round(qtyTotalQty 3) AS Fraction

                                                FROM SP order by [s]

                                                44

                                                Sous-requecirctes

                                                s p qty TotalQty Fraction

                                                s1 p1 300 1300 0231

                                                s1 p6 100 1300 0077

                                                s1 p5 100 1300 0077

                                                s1 p4 200 1300 0154

                                                s1 p3 400 1300 0308

                                                s1 p2 200 1300 0154

                                                s2 p2 300 300 1

                                                s3 p2 400 400 1

                                                s4 p5 400 1100 0364

                                                s4 p4 300 1100 0273

                                                s4 p2 200 1100 0182

                                                bull ReacutesultatSP

                                                s p qty

                                                s1 p1 300

                                                s1 p2 200

                                                s1 p3 400

                                                s1 p4 200

                                                s1 p5 100

                                                s1 p6 100

                                                s2 p2 300

                                                s3 p2 400

                                                s4 p1 200

                                                s4 p2 200

                                                s4 p4 300

                                                s4 p5 400

                                                45

                                                Sous-requecirctesbull En Mode Graphique

                                                s p qtyTotalQty

                                                Fraction

                                                s1 p1 300 1300 0231

                                                s1 p6 100 1300 0077

                                                s1 p5 100 1300 0077

                                                s1 p4 200 1300 0154

                                                s1 p3 400 1300 0308

                                                s1 p2 200 1300 0154

                                                s2 p2 300 300 1

                                                s3 p2 400 400 1

                                                s4 p5 400 1100 0364

                                                s4 p4 300 1100 0273

                                                s4 p2 200 1100 0182

                                                46

                                                Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                SELECT (select count(qty) from SP

                                                where qty gt= [seuil svp ]) count() as reacutesultat

                                                FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                probabiliteacute conditionnelle

                                                47

                                                Clause FROM imbriqueacutee

                                                Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                Agrave essayer

                                                48

                                                Clause FROM imbriqueacuteePossibiliteacutes

                                                ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                MsAccess

                                                ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                Mais la reacutefeacuterence au nom de la requecircte OK

                                                49

                                                Clause FROM imbriqueacutee

                                                SELECT sum(weight) AS [poids-total]

                                                FROM (SELECT weight pcity FROM P WHERE City like l

                                                UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                50

                                                Clause FROM imbriqueacutee

                                                select avg(moy1) as [moyenne-des-moyennes]

                                                FROM

                                                (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                51

                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                52

                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                totaux partiels et total geacuteneacuteral

                                                total_Id TotalQty

                                                s1 1300

                                                s2 300

                                                s3 400

                                                s4 400

                                                total Geacuteneacuteral

                                                2400

                                                53

                                                Valeurs nulles

                                                Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                Non WHERE HAVING GROUP BY (rel 1)

                                                Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                MsAccess Oui DISTINCT Autres clauses

                                                54

                                                Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                1 x gt y est vrai ou faux

                                                2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                SELECT FROM S WHERE CITY =Paris

                                                UNION

                                                SELECT FROM S WHERE NOT CITY = Paris

                                                est toujours pourquoi faire simpleSELECT FROM S

                                                si on peut faire compliqueacute

                                                55

                                                Valeurs nullesValeurs nulles

                                                SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                56

                                                Valeurs nulles

                                                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                LOG (nul) -gt Error A voir cas par cas

                                                57

                                                Fonctions Scalaires DateTemps

                                                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                58

                                                Fonctions Scalaires DateTemps

                                                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                weekday(day(now())-1) AS [day]FROM S

                                                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                59

                                                Fonctions Scalaires DateTemps

                                                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                Interval Explanation

                                                Yyyy Year

                                                q Quarter

                                                m Month

                                                y Day of year

                                                d Day

                                                w Weekday

                                                ww Week

                                                h Hour

                                                n Minute

                                                s Second

                                                60

                                                Fonctions Scalaires DateTemps

                                                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                Test DateDiff

                                                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                61

                                                Fonctions Scalaires DateTemps

                                                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                Liste tous les tuples ougrave DateV est de Janvier 2009

                                                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                62

                                                Fonction Scalaire RND

                                                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                FROM SPORDER BY rnd(qty) DESC

                                                echantillon s rank

                                                s1 502628087997437E-02

                                                s4 0518015921115875

                                                s3 075702953338623

                                                63

                                                Fonction Scalaire RND

                                                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                FROM SPORDER BY rnd(qty) DESC

                                                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                Votre commentaire ici

                                                64

                                                Fonctions Financiegraveres

                                                Fonction DDB Calcule lamortissement deacutegressif

                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                65

                                                Fonctions Financiegraveres

                                                Fonction DDB Calcule lamortissement deacutegressif

                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                66

                                                Fonction DDB

                                                insert into DDB (cost salvage life factor amortiss period)

                                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                                DDB(cost salvage life period factor) as amortiss period

                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                67

                                                Fonction DDB

                                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                68

                                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                nombres neacutegatifs

                                                Fonction PMT

                                                69

                                                Fonction PMT

                                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                Fonction PMT calcul dannuiteacute demprunt

                                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                preacutesentevaleur_payeacutee surprime

                                                -16049 005 20 200000 -320980 -120980

                                                70

                                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                Et les nuls que log ne supporte pas

                                                Anneacutee relative

                                                Taux

                                                1 4

                                                2 4

                                                3 3

                                                4 5

                                                5 5

                                                Voir + dans le livre laquo SQL Design Patterns raquo

                                                71

                                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                est eacutequivalente agrave

                                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                WHERE XP = SPP) FROM SP

                                                Testez

                                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                72

                                                LIST Function La requecircte

                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                Comme les tabulations croiseacutees

                                                ndash Mais en + simple

                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                ndash En mono attribut (2004)

                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                sous-formulaires

                                                73

                                                LIST Function

                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                74

                                                GROUP BY avec WHERE

                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                75

                                                GROUP BY

                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                Pourquoi

                                                76

                                                GROUP BY avec HAVING

                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                77

                                                T-GROUP BY Proposeacute pour SQL

                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                Le rocircle de -join par rapport agrave equi-join

                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                78

                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                FROM SP Vrai ou Faux

                                                79

                                                T-GROUP BY

                                                Reacutesultat

                                                part avg_qty_other_parts part_avg_qty

                                                p1 250 300

                                                p2 262 250

                                                p3 245 400

                                                p4 260 250

                                                p5 260 250

                                                p6 272 100

                                                80

                                                T-GROUP BY

                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                81

                                                Rangs Non-Denses(Non Dense Ranking)

                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                s p qtyND-rank

                                                s4 p5 400 1

                                                s3 p2 400 1

                                                s1 p3 400 1

                                                s4 p4 300 4

                                                s2 p2 300 4

                                                s1 p1 300 4

                                                s4 p2 200 7

                                                s1 p4 200 7

                                                s1 p2 200 7

                                                s4 p1 200 7

                                                s1 p6 100 11

                                                s1 p5 100 11

                                                82

                                                Rangs Non-Denses(Graphique MsAccess)

                                                s p qty ND-rank

                                                s4 p5 400 1

                                                s3 p2 400 1

                                                s1 p3 400 1

                                                s4 p4 300 4

                                                s2 p2 300 4

                                                s1 p1 300 4

                                                s4 p2 200 7

                                                s1 p4 200 7

                                                s1 p2 200 7

                                                s4 p1 200 7

                                                s1 p6 100 11

                                                s1 p5 100 11

                                                83

                                                Rangs Denses(Dense Ranking)

                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                s p qtyD-rank

                                                s1 p3 400 1

                                                s3 p2 400 1

                                                s4 p5 400 1

                                                s1 p1 300 2

                                                s2 p2 300 2

                                                s4 p4 300 2

                                                s1 p4 200 3

                                                s1 p2 200 3

                                                s4 p2 200 3

                                                s4 p1 200 3

                                                s1 p6 100 4

                                                s1 p5 100 4

                                                84

                                                Rangs DensesGraphique MsAccess

                                                s p qty D-rank

                                                s1 p3 400 1

                                                s3 p2 400 1

                                                s4 p5 400 1

                                                s1 p1 300 2

                                                s2 p2 300 2

                                                s4 p4 300 2

                                                s1 p4 200 3

                                                s1 p2 200 3

                                                s4 p2 200 3

                                                s4 p1 200 3

                                                s1 p6 100 4

                                                s1 p5 100 4

                                                85

                                                Distribution

                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                86

                                                Reacutesultat

                                                s Distribution

                                                s1 0419

                                                s2 0097

                                                s3 0129

                                                s4 0355

                                                87

                                                Distribution Cumulative

                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                FROM SP

                                                ORDER BY SP[s]

                                                88

                                                Reacutesultat

                                                sDistribution Cumuleacutee

                                                s1 0419

                                                s2 0516

                                                s3 0645

                                                s4 1

                                                89

                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                90

                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                IIf([status]lt30OKgood) AS IIfSimple

                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                FROM S

                                                GROUP BY S[S] SSName SStatus SCity

                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                s1 Smith Paris good good

                                                s2 Jones 100 london good VGood

                                                s3 Blake 30 Paris good good

                                                s4 Clark 10 london OK OK

                                                s5 Adams 30 Athens good good

                                                bull Notez le traitement du null

                                                91

                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                SELECT Ppname weight Very Heavy as Warning

                                                FROM P where weight gt 13

                                                union

                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                UNION

                                                select Ppname weight Light as warn from p where weight lt 10

                                                ORDER BY warning DESC weight DESC

                                                pname weight Warning

                                                cam 19 Very Heavy

                                                cog 19 Very Heavy

                                                bolt 17 Very Heavy

                                                nut 14 Very Heavy

                                                screw 14 Very Heavy

                                                nut 14 Quite Heavy

                                                screw 14 Quite Heavy

                                                screw 12 Quite Heavy

                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                92

                                                UNIONPreacutedictions de Valeurs Inconnues

                                                On considegravere AVG(Qty1) pour Qty

                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                SP

                                                s p qtyQty1

                                                s1 p1 300 400

                                                s1 p2 200

                                                s1 p3 400 600

                                                s1 p4 200 300

                                                s1 p5 100

                                                s1 p6 100 200

                                                s2 p2 300 500

                                                s3 p2 400

                                                s4 p1 200 100

                                                s4 p2 200

                                                s4 p4 300

                                                s4 p5 400

                                                93

                                                UNIONPreacutediction de Valeurs Inconnues

                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                SP

                                                s p qtyQty1

                                                s1 p1 300 400

                                                s1 p2 200

                                                s1 p3 400 600

                                                s1 p4 200 300

                                                s1 p5 100

                                                s1 p6 100 200

                                                s2 p2 300 500

                                                s3 p2 400

                                                s4 p1 200 100

                                                s4 p2 200

                                                s4 p4 300

                                                s4 p5 400

                                                qty for partpredicted or

                                                unknown Qty1

                                                100 p5

                                                100 predicted value 200

                                                200 p2

                                                200 predicted value 200

                                                300 p4

                                                300 predicted value 450

                                                400 p2

                                                400 p5

                                                400 predicted value 600

                                                94

                                                Tendance

                                                qty Qty1

                                                100 200

                                                200 300

                                                300 400

                                                400 600

                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                Graph 3D avec Qty en abscisses

                                                95

                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                30102008 120 27102008 4

                                                25102008 131 22102008 4

                                                23102008 127 20102008 4

                                                17102008 269 14102008 4

                                                15102008 60 12102008 4

                                                11102008 295 08102008 4

                                                09102008 340 06102008 4

                                                08102008 324 05102008 4

                                                06102008 315 03102008 4

                                                96

                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                Graphique avec une info-bulle

                                                97

                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                glissantes

                                                bull CSUM (Cumulative (Running) Sums)

                                                bull MAVG

                                                bull MSUM

                                                bull MDIFF

                                                bull Voir Teradata + loin

                                                98

                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                99

                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                Entiers est une table aux avec la colonne de12hellip10

                                                100

                                                Seacuteries financiegraveres

                                                capital taux nval apregraves n ans

                                                taux1val1 apregraves n ans

                                                GainAbs GainRel

                                                100 005 1 105 006 106 1 1

                                                100 005 2 110 006 112 2 2

                                                100 005 3 115 006 119 4 4

                                                100 005 4 121 006 126 5 5

                                                100 005 5 127 006 133 6 6

                                                100 005 6 134 006 141 7 7

                                                100 005 7 140 006 150 10 10

                                                100 005 8 147 006 159 12 12

                                                100 005 9 155 006 168 13 13

                                                100 005 10 162 006 179 17 17

                                                100 005 11 171 006 189 18 18

                                                100 005 12 179 006 201 22 22

                                                100 005 13 188 006 213 25 25

                                                100 005 14 197 006 226 29 29

                                                100 005 15 207 006 239 32 32

                                                100 005 16 218 006 254 36 36

                                                100 005 17 229 006 269 40 40

                                                100 005 18 240 006 285 45 45

                                                100 005 19 252 006 302 50 50

                                                100 005 20 265 006 320 55 55

                                                101

                                                Seacuteries financiegraveres

                                                102

                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                financiers de la table Produits

                                                bull Dans la limite L de la somme donneacutee

                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                bull En ordre descendant de prix

                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                bull Plusieurs actionshellip

                                                103

                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                P prix

                                                p3 200

                                                p1 200

                                                p2 400

                                                p3 200

                                                p4 100

                                                p6 100

                                                p5 300

                                                p8 300

                                                p7 400

                                                p10 200

                                                p12 300

                                                p13 300

                                                104

                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                ORDER BY 4 desc 8 123

                                                105

                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                106

                                                Creacuteation drsquoun Portefeuille Discussion

                                                Creacuteation drsquoun Portefeuille Discussion

                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                107

                                                Creacuteation drsquoun Portefeuille Discussion

                                                Creacuteation drsquoun Portefeuille Discussion

                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                108

                                                ROLLUP(DB2 amp SQL-Server)

                                                ROLLUP(DB2 amp SQL-Server)

                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                109

                                                CUBE(DB2 amp SQL-Server)

                                                CUBE(DB2 amp SQL-Server)

                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                110

                                                GROUPING SETS

                                                On indique explicitement les groupesndash entre ()

                                                le groupe () est constitueacute de toute la table

                                                SELECT p sum (qty) as tot-qty from SSP P

                                                WHERE SP P = PP AND SP S = SS

                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                HAVING tot-qty gt 100

                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                111

                                                Rollup Cube Grouping Setssous MsAccess

                                                Il y en a pas On peut simuler ces manipulations en

                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                Peut ecirctre laborieux pour le CUBE

                                                112

                                                ROLLUP

                                                Remarquez le laquo null as cityraquo

                                                113

                                                ROLLUP

                                                114

                                                ROLLUP

                                                Et le CUBE

                                                Une solution pour l ambiguiumlteacute

                                                de certains nuls

                                                115

                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                Wiley (publ)

                                                116

                                                Sous-Tables Parameacutetreacutees

                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                117

                                                Sous-Tables Parameacutetreacutees

                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                118

                                                Sous-Tables Parameacutetreacutees

                                                119

                                                Sous-Tables Parameacutetreacutees

                                                120

                                                Sous-Tables Parameacutetreacutees

                                                121

                                                Sous-Tables Parameacutetreacutees

                                                122

                                                Sous-Tables Parameacutetreacutees

                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                123

                                                Sous-Tables Parameacutetreacutees

                                                Exeacutecution autonome

                                                124

                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                hellip

                                                125

                                                Liste de Choix Multibase

                                                bull Requecircte Test-liste-de-choix mdb

                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                126

                                                Liste de Choix MultibaseReacutesultat

                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                Tregraves bonne question agrave Microsoft

                                                148

                                                FIN

                                                149

                                                • SQL Avanceacute 2010
                                                • Quoi amp Pourquoi
                                                • Slide 3
                                                • Synonymes
                                                • Noms dattributs
                                                • Slide 6
                                                • Slide 7
                                                • Slide 8
                                                • Insertion dans une Vue
                                                • Insertion dans une Vue (2)
                                                • MAJ drsquoune Vue MsAccess
                                                • MAJ drsquoune Vue MsAccess (2)
                                                • Suppression dans une Vue MsAccess
                                                • MsAccess Leacutegendes
                                                • Expressions de valeur
                                                • Expressions de valeur (2)
                                                • Pour en savoir + sur les attributs dynamiques
                                                • UNION et Noms Drsquoattributs
                                                • UNION et ORDER BY
                                                • ORDER BY et expressions de valeur
                                                • ORDER BY et expressions de valeur (2)
                                                • Ordre de prioriteacute dopeacuterations
                                                • Preacutedicat TOP
                                                • Preacutedicat TOP (2)
                                                • Clause BETWEEN
                                                • Limitations de NOT
                                                • ANY et ALL
                                                • Injection SQL
                                                • Injection SQL (2)
                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                • Tabulations Croiseacutees
                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                • Tabulations Croiseacutees (2)
                                                • Tabulations Croiseacutees (3)
                                                • Tabulations Croiseacutees (4)
                                                • Tabulations Croiseacutees (5)
                                                • XOR
                                                • IMP
                                                • Sous-requecirctes
                                                • Sous-requecirctes (2)
                                                • Sous-requecirctes (3)
                                                • Sous-requecirctes (4)
                                                • Sous-requecirctes (5)
                                                • Sous-requecirctes (6)
                                                • Sous-requecirctes (7)
                                                • Application aux Probabiliteacutes
                                                • Clause FROM imbriqueacutee
                                                • Clause FROM imbriqueacutee (2)
                                                • Clause FROM imbriqueacutee (3)
                                                • Clause FROM imbriqueacutee (4)
                                                • Clause FROM imbriqueacutee (5)
                                                • Clause FROM imbriqueacutee (6)
                                                • Valeurs nulles
                                                • Valeurs nulles (2)
                                                • Valeurs nulles (3)
                                                • Valeurs nulles (4)
                                                • Fonctions Scalaires DateTemps
                                                • Fonctions Scalaires DateTemps (2)
                                                • Fonctions Scalaires DateTemps (3)
                                                • Fonctions Scalaires DateTemps (4)
                                                • Fonctions Scalaires DateTemps (5)
                                                • Fonction Scalaire RND
                                                • Fonction Scalaire RND (2)
                                                • Fonctions Financiegraveres
                                                • Fonctions Financiegraveres (2)
                                                • Fonction DDB
                                                • Fonction DDB (2)
                                                • Fonction PMT
                                                • Fonction PMT (2)
                                                • Placement agrave taux variable
                                                • GROUP BY
                                                • LIST Function
                                                • LIST Function (2)
                                                • GROUP BY avec WHERE
                                                • GROUP BY (2)
                                                • GROUP BY avec HAVING
                                                • T-GROUP BY
                                                • T-GROUP BY (2)
                                                • T-GROUP BY (3)
                                                • T-GROUP BY (4)
                                                • Rangs Non-Denses (Non Dense Ranking)
                                                • Rangs Non-Denses (Graphique MsAccess)
                                                • Rangs Denses (Dense Ranking)
                                                • Rangs Denses Graphique MsAccess
                                                • Distribution
                                                • Reacutesultat
                                                • Distribution Cumulative
                                                • Reacutesultat (2)
                                                • Cateacutegorisation
                                                • Cateacutegorisation (2)
                                                • Cateacutegorisation (3)
                                                • UNION Preacutedictions de Valeurs Inconnues
                                                • UNION Preacutediction de Valeurs Inconnues
                                                • Tendance
                                                • Moyenne Glissante
                                                • Moyenne Glissante (2)
                                                • Moyenne Glissante (3)
                                                • Seacuteries financiegraveres
                                                • Seacuteries financiegraveres (2)
                                                • Seacuteries financiegraveres (3)
                                                • Seacuteries financiegraveres (4)
                                                • Creacuteation drsquoun Portefeuille
                                                • Creacuteation drsquoun Portefeuille (2)
                                                • Creacuteation drsquoun Portefeuille (3)
                                                • Creacuteation drsquoun Portefeuille (4)
                                                • Creacuteation drsquoun Portefeuille Discussion
                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                • ROLLUP (DB2 amp SQL-Server)
                                                • CUBE (DB2 amp SQL-Server)
                                                • GROUPING SETS
                                                • Rollup Cube Grouping Sets sous MsAccess
                                                • Slide 112
                                                • Slide 113
                                                • Slide 114
                                                • Autres Opeacuterations Utiles
                                                • Sous-Tables Parameacutetreacutees
                                                • Sous-Tables Parameacutetreacutees (2)
                                                • Sous-Tables Parameacutetreacutees (3)
                                                • Sous-Tables Parameacutetreacutees (4)
                                                • Sous-Tables Parameacutetreacutees (5)
                                                • Sous-Tables Parameacutetreacutees (6)
                                                • Sous-Tables Parameacutetreacutees (7)
                                                • Sous-Tables Parameacutetreacutees (8)
                                                • Liste de Choix Multibase
                                                • Liste de Choix Multibase (2)
                                                • Liste de Choix Multibase Reacutesultat
                                                • FIN
                                                • Slide 149

                                                  25

                                                  Clause BETWEEN

                                                  Peut ecirctre appliqueacutee au texte Mais ne connaicirct pas de caractegraveres

                                                  geacuteneacuteriques ndash contrairement agrave LIKE

                                                  Quel sera le reacutesultat pour Jones et pourquoi

                                                  SELECT FROM S where sname between b and J

                                                  Et si on eacutecrit

                                                  SELECT FROM S where sname between J and b

                                                  ndash Le reacutesultat s rsquoapplique aussi aux valeurs numeacuteriques

                                                  26

                                                  Limitations de NOT

                                                  Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                                  (SELECT CITY FROM S)

                                                  Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                                  Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                                  Hypothegravese de Monde ouvert

                                                  27

                                                  ANY et ALL

                                                  All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                                  (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                  si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                                  si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                                  Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                                  (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                  28

                                                  Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                                  restriction une condition qui annule cette restriction

                                                  Gros deacutegacircts sur le WEB notammentSELECT

                                                  FROM S

                                                  WHERE city=london Or True

                                                  SQL Injection

                                                  S SName Status City

                                                  s1 smith Paris

                                                  s2 Jones 100 london

                                                  s3 Blake 30 Paris

                                                  s4 Clark 10 london

                                                  s5 Adams 30 Athens

                                                  29

                                                  Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                                  True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                                  SELECT

                                                  FROM S

                                                  WHERE status= 100 Or 200

                                                  SELECT

                                                  FROM S

                                                  WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                                  SELECT

                                                  FROM S

                                                  WHERE city=london Or 100

                                                  30

                                                  Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                  Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                  BY et les valeurs individuelles en mecircme temps

                                                  ndash Impossible avec SQL standard

                                                  31

                                                  S Total Qty p1 p2 p3 p4 p5 p6

                                                  s1 1300 300 200 400 200 100 100

                                                  s2 700 300 400

                                                  s3 200 200

                                                  s4 900 200 300 400

                                                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                  Tabulations Croiseacutees

                                                  32

                                                  Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                  Transforment les valeurs dattributs en attributsndash Par exemple

                                                  les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                  les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                  33

                                                  S Total Qty p1 p2 p3 p4 p5 p6

                                                  s1 1300 300 200 400 200 100 100

                                                  s2 700 300 400

                                                  s3 200 200

                                                  s4 900 200 300 400

                                                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                  Tabulations Croiseacutees

                                                  34

                                                  TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                  Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                  Tabulations Croiseacutees

                                                  Nouvellescolonnes

                                                  35

                                                  La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                  On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                  Tabulations Croiseacutees

                                                  36

                                                  On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                  Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                  On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                  Mais cette clause naffecte pas les calculs des agreacutegats

                                                  Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                  Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                  Tabulations Croiseacutees

                                                  37

                                                  XORSELECT S[S] SStatus SCity

                                                  FROM S

                                                  WHERE Status=10 Xor city=paris

                                                  bull A noter le traitement du nul dans City

                                                  38

                                                  IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                  bull A noter le traitement du nul dans City

                                                  39

                                                  Sous-requecirctes

                                                  A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                  clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                  rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                  sous-requecircte

                                                  SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                  40

                                                  Sous-requecirctes

                                                  Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                  laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                  vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                  plus grande

                                                  41

                                                  Sous-requecirctes

                                                  Skylinendash Tout objet non-domineacute (cacheacute

                                                  totalement) par un autre

                                                  SELECT X[s] X[p] qty delay

                                                  FROM SP X

                                                  where not exists

                                                  (select from SP as Y

                                                  where (Yqty gt= XQty and YDelay lt XDelay or

                                                  Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                  order by X[p]

                                                  42

                                                  Sous-requecirctes Reacutesultat

                                                  s p qty delay

                                                  s1 p1 300 15

                                                  s4 p1 200 13

                                                  s3 p2 400 15

                                                  s2 p2 300 12

                                                  s1 p3 400 17

                                                  s4 p4 300 11

                                                  s4 p5 400 7

                                                  s1 p6 100 8

                                                  s p qty Delay

                                                  s1 p1 300 15

                                                  s1 p2 200 12

                                                  s1 p3 400 17

                                                  s1 p4 200 11

                                                  s1 p5 100 7

                                                  s1 p6 100 8

                                                  s2 p2 300 12

                                                  s3 p2 400 15

                                                  s4 p1 200 13

                                                  s4 p2 200 15

                                                  s4 p4 300 11

                                                  s4 p5 400 7

                                                  S

                                                  43

                                                  Sous-requecirctes

                                                  On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                  SELECT Count() AS TotalQty

                                                  FROM (select distinct qty from sp)

                                                  On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                  SELECT SP[s] SP[p] qty

                                                  (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                  round(qtyTotalQty 3) AS Fraction

                                                  FROM SP order by [s]

                                                  44

                                                  Sous-requecirctes

                                                  s p qty TotalQty Fraction

                                                  s1 p1 300 1300 0231

                                                  s1 p6 100 1300 0077

                                                  s1 p5 100 1300 0077

                                                  s1 p4 200 1300 0154

                                                  s1 p3 400 1300 0308

                                                  s1 p2 200 1300 0154

                                                  s2 p2 300 300 1

                                                  s3 p2 400 400 1

                                                  s4 p5 400 1100 0364

                                                  s4 p4 300 1100 0273

                                                  s4 p2 200 1100 0182

                                                  bull ReacutesultatSP

                                                  s p qty

                                                  s1 p1 300

                                                  s1 p2 200

                                                  s1 p3 400

                                                  s1 p4 200

                                                  s1 p5 100

                                                  s1 p6 100

                                                  s2 p2 300

                                                  s3 p2 400

                                                  s4 p1 200

                                                  s4 p2 200

                                                  s4 p4 300

                                                  s4 p5 400

                                                  45

                                                  Sous-requecirctesbull En Mode Graphique

                                                  s p qtyTotalQty

                                                  Fraction

                                                  s1 p1 300 1300 0231

                                                  s1 p6 100 1300 0077

                                                  s1 p5 100 1300 0077

                                                  s1 p4 200 1300 0154

                                                  s1 p3 400 1300 0308

                                                  s1 p2 200 1300 0154

                                                  s2 p2 300 300 1

                                                  s3 p2 400 400 1

                                                  s4 p5 400 1100 0364

                                                  s4 p4 300 1100 0273

                                                  s4 p2 200 1100 0182

                                                  46

                                                  Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                  SELECT (select count(qty) from SP

                                                  where qty gt= [seuil svp ]) count() as reacutesultat

                                                  FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                  probabiliteacute conditionnelle

                                                  47

                                                  Clause FROM imbriqueacutee

                                                  Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                  Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                  Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                  Agrave essayer

                                                  48

                                                  Clause FROM imbriqueacuteePossibiliteacutes

                                                  ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                  ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                  MsAccess

                                                  ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                  Mais la reacutefeacuterence au nom de la requecircte OK

                                                  49

                                                  Clause FROM imbriqueacutee

                                                  SELECT sum(weight) AS [poids-total]

                                                  FROM (SELECT weight pcity FROM P WHERE City like l

                                                  UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                  50

                                                  Clause FROM imbriqueacutee

                                                  select avg(moy1) as [moyenne-des-moyennes]

                                                  FROM

                                                  (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                  UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                  51

                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                  select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                  52

                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                  totaux partiels et total geacuteneacuteral

                                                  total_Id TotalQty

                                                  s1 1300

                                                  s2 300

                                                  s3 400

                                                  s4 400

                                                  total Geacuteneacuteral

                                                  2400

                                                  53

                                                  Valeurs nulles

                                                  Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                  En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                  DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                  Non WHERE HAVING GROUP BY (rel 1)

                                                  Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                  MsAccess Oui DISTINCT Autres clauses

                                                  54

                                                  Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                  1 x gt y est vrai ou faux

                                                  2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                  DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                  SELECT FROM S WHERE CITY =Paris

                                                  UNION

                                                  SELECT FROM S WHERE NOT CITY = Paris

                                                  est toujours pourquoi faire simpleSELECT FROM S

                                                  si on peut faire compliqueacute

                                                  55

                                                  Valeurs nullesValeurs nulles

                                                  SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                  SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                  Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                  56

                                                  Valeurs nulles

                                                  Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                  LOG (nul) -gt Error A voir cas par cas

                                                  57

                                                  Fonctions Scalaires DateTemps

                                                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                  58

                                                  Fonctions Scalaires DateTemps

                                                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                  weekday(day(now())-1) AS [day]FROM S

                                                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                  59

                                                  Fonctions Scalaires DateTemps

                                                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                  Interval Explanation

                                                  Yyyy Year

                                                  q Quarter

                                                  m Month

                                                  y Day of year

                                                  d Day

                                                  w Weekday

                                                  ww Week

                                                  h Hour

                                                  n Minute

                                                  s Second

                                                  60

                                                  Fonctions Scalaires DateTemps

                                                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                  Test DateDiff

                                                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                  61

                                                  Fonctions Scalaires DateTemps

                                                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                  Liste tous les tuples ougrave DateV est de Janvier 2009

                                                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                  62

                                                  Fonction Scalaire RND

                                                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                  FROM SPORDER BY rnd(qty) DESC

                                                  echantillon s rank

                                                  s1 502628087997437E-02

                                                  s4 0518015921115875

                                                  s3 075702953338623

                                                  63

                                                  Fonction Scalaire RND

                                                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                  FROM SPORDER BY rnd(qty) DESC

                                                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                  Votre commentaire ici

                                                  64

                                                  Fonctions Financiegraveres

                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                  65

                                                  Fonctions Financiegraveres

                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                  66

                                                  Fonction DDB

                                                  insert into DDB (cost salvage life factor amortiss period)

                                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                                  DDB(cost salvage life period factor) as amortiss period

                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                  67

                                                  Fonction DDB

                                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                  68

                                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                  nombres neacutegatifs

                                                  Fonction PMT

                                                  69

                                                  Fonction PMT

                                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                  Fonction PMT calcul dannuiteacute demprunt

                                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                  preacutesentevaleur_payeacutee surprime

                                                  -16049 005 20 200000 -320980 -120980

                                                  70

                                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                  Et les nuls que log ne supporte pas

                                                  Anneacutee relative

                                                  Taux

                                                  1 4

                                                  2 4

                                                  3 3

                                                  4 5

                                                  5 5

                                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                                  71

                                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                  est eacutequivalente agrave

                                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                  WHERE XP = SPP) FROM SP

                                                  Testez

                                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                  72

                                                  LIST Function La requecircte

                                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                  Comme les tabulations croiseacutees

                                                  ndash Mais en + simple

                                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                  ndash En mono attribut (2004)

                                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                  sous-formulaires

                                                  73

                                                  LIST Function

                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                  74

                                                  GROUP BY avec WHERE

                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                  75

                                                  GROUP BY

                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                  Pourquoi

                                                  76

                                                  GROUP BY avec HAVING

                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                  77

                                                  T-GROUP BY Proposeacute pour SQL

                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                  Le rocircle de -join par rapport agrave equi-join

                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                  78

                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                  FROM SP Vrai ou Faux

                                                  79

                                                  T-GROUP BY

                                                  Reacutesultat

                                                  part avg_qty_other_parts part_avg_qty

                                                  p1 250 300

                                                  p2 262 250

                                                  p3 245 400

                                                  p4 260 250

                                                  p5 260 250

                                                  p6 272 100

                                                  80

                                                  T-GROUP BY

                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                  81

                                                  Rangs Non-Denses(Non Dense Ranking)

                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                  s p qtyND-rank

                                                  s4 p5 400 1

                                                  s3 p2 400 1

                                                  s1 p3 400 1

                                                  s4 p4 300 4

                                                  s2 p2 300 4

                                                  s1 p1 300 4

                                                  s4 p2 200 7

                                                  s1 p4 200 7

                                                  s1 p2 200 7

                                                  s4 p1 200 7

                                                  s1 p6 100 11

                                                  s1 p5 100 11

                                                  82

                                                  Rangs Non-Denses(Graphique MsAccess)

                                                  s p qty ND-rank

                                                  s4 p5 400 1

                                                  s3 p2 400 1

                                                  s1 p3 400 1

                                                  s4 p4 300 4

                                                  s2 p2 300 4

                                                  s1 p1 300 4

                                                  s4 p2 200 7

                                                  s1 p4 200 7

                                                  s1 p2 200 7

                                                  s4 p1 200 7

                                                  s1 p6 100 11

                                                  s1 p5 100 11

                                                  83

                                                  Rangs Denses(Dense Ranking)

                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                  s p qtyD-rank

                                                  s1 p3 400 1

                                                  s3 p2 400 1

                                                  s4 p5 400 1

                                                  s1 p1 300 2

                                                  s2 p2 300 2

                                                  s4 p4 300 2

                                                  s1 p4 200 3

                                                  s1 p2 200 3

                                                  s4 p2 200 3

                                                  s4 p1 200 3

                                                  s1 p6 100 4

                                                  s1 p5 100 4

                                                  84

                                                  Rangs DensesGraphique MsAccess

                                                  s p qty D-rank

                                                  s1 p3 400 1

                                                  s3 p2 400 1

                                                  s4 p5 400 1

                                                  s1 p1 300 2

                                                  s2 p2 300 2

                                                  s4 p4 300 2

                                                  s1 p4 200 3

                                                  s1 p2 200 3

                                                  s4 p2 200 3

                                                  s4 p1 200 3

                                                  s1 p6 100 4

                                                  s1 p5 100 4

                                                  85

                                                  Distribution

                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                  86

                                                  Reacutesultat

                                                  s Distribution

                                                  s1 0419

                                                  s2 0097

                                                  s3 0129

                                                  s4 0355

                                                  87

                                                  Distribution Cumulative

                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                  FROM SP

                                                  ORDER BY SP[s]

                                                  88

                                                  Reacutesultat

                                                  sDistribution Cumuleacutee

                                                  s1 0419

                                                  s2 0516

                                                  s3 0645

                                                  s4 1

                                                  89

                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                  90

                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                  FROM S

                                                  GROUP BY S[S] SSName SStatus SCity

                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                  s1 Smith Paris good good

                                                  s2 Jones 100 london good VGood

                                                  s3 Blake 30 Paris good good

                                                  s4 Clark 10 london OK OK

                                                  s5 Adams 30 Athens good good

                                                  bull Notez le traitement du null

                                                  91

                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                  SELECT Ppname weight Very Heavy as Warning

                                                  FROM P where weight gt 13

                                                  union

                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                  UNION

                                                  select Ppname weight Light as warn from p where weight lt 10

                                                  ORDER BY warning DESC weight DESC

                                                  pname weight Warning

                                                  cam 19 Very Heavy

                                                  cog 19 Very Heavy

                                                  bolt 17 Very Heavy

                                                  nut 14 Very Heavy

                                                  screw 14 Very Heavy

                                                  nut 14 Quite Heavy

                                                  screw 14 Quite Heavy

                                                  screw 12 Quite Heavy

                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                  92

                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                  On considegravere AVG(Qty1) pour Qty

                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                  SP

                                                  s p qtyQty1

                                                  s1 p1 300 400

                                                  s1 p2 200

                                                  s1 p3 400 600

                                                  s1 p4 200 300

                                                  s1 p5 100

                                                  s1 p6 100 200

                                                  s2 p2 300 500

                                                  s3 p2 400

                                                  s4 p1 200 100

                                                  s4 p2 200

                                                  s4 p4 300

                                                  s4 p5 400

                                                  93

                                                  UNIONPreacutediction de Valeurs Inconnues

                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                  SP

                                                  s p qtyQty1

                                                  s1 p1 300 400

                                                  s1 p2 200

                                                  s1 p3 400 600

                                                  s1 p4 200 300

                                                  s1 p5 100

                                                  s1 p6 100 200

                                                  s2 p2 300 500

                                                  s3 p2 400

                                                  s4 p1 200 100

                                                  s4 p2 200

                                                  s4 p4 300

                                                  s4 p5 400

                                                  qty for partpredicted or

                                                  unknown Qty1

                                                  100 p5

                                                  100 predicted value 200

                                                  200 p2

                                                  200 predicted value 200

                                                  300 p4

                                                  300 predicted value 450

                                                  400 p2

                                                  400 p5

                                                  400 predicted value 600

                                                  94

                                                  Tendance

                                                  qty Qty1

                                                  100 200

                                                  200 300

                                                  300 400

                                                  400 600

                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                  Graph 3D avec Qty en abscisses

                                                  95

                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                  30102008 120 27102008 4

                                                  25102008 131 22102008 4

                                                  23102008 127 20102008 4

                                                  17102008 269 14102008 4

                                                  15102008 60 12102008 4

                                                  11102008 295 08102008 4

                                                  09102008 340 06102008 4

                                                  08102008 324 05102008 4

                                                  06102008 315 03102008 4

                                                  96

                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                  Graphique avec une info-bulle

                                                  97

                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                  glissantes

                                                  bull CSUM (Cumulative (Running) Sums)

                                                  bull MAVG

                                                  bull MSUM

                                                  bull MDIFF

                                                  bull Voir Teradata + loin

                                                  98

                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                  99

                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                  Entiers est une table aux avec la colonne de12hellip10

                                                  100

                                                  Seacuteries financiegraveres

                                                  capital taux nval apregraves n ans

                                                  taux1val1 apregraves n ans

                                                  GainAbs GainRel

                                                  100 005 1 105 006 106 1 1

                                                  100 005 2 110 006 112 2 2

                                                  100 005 3 115 006 119 4 4

                                                  100 005 4 121 006 126 5 5

                                                  100 005 5 127 006 133 6 6

                                                  100 005 6 134 006 141 7 7

                                                  100 005 7 140 006 150 10 10

                                                  100 005 8 147 006 159 12 12

                                                  100 005 9 155 006 168 13 13

                                                  100 005 10 162 006 179 17 17

                                                  100 005 11 171 006 189 18 18

                                                  100 005 12 179 006 201 22 22

                                                  100 005 13 188 006 213 25 25

                                                  100 005 14 197 006 226 29 29

                                                  100 005 15 207 006 239 32 32

                                                  100 005 16 218 006 254 36 36

                                                  100 005 17 229 006 269 40 40

                                                  100 005 18 240 006 285 45 45

                                                  100 005 19 252 006 302 50 50

                                                  100 005 20 265 006 320 55 55

                                                  101

                                                  Seacuteries financiegraveres

                                                  102

                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                  financiers de la table Produits

                                                  bull Dans la limite L de la somme donneacutee

                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                  bull En ordre descendant de prix

                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                  bull Plusieurs actionshellip

                                                  103

                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                  P prix

                                                  p3 200

                                                  p1 200

                                                  p2 400

                                                  p3 200

                                                  p4 100

                                                  p6 100

                                                  p5 300

                                                  p8 300

                                                  p7 400

                                                  p10 200

                                                  p12 300

                                                  p13 300

                                                  104

                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                  ORDER BY 4 desc 8 123

                                                  105

                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                  106

                                                  Creacuteation drsquoun Portefeuille Discussion

                                                  Creacuteation drsquoun Portefeuille Discussion

                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                  107

                                                  Creacuteation drsquoun Portefeuille Discussion

                                                  Creacuteation drsquoun Portefeuille Discussion

                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                  108

                                                  ROLLUP(DB2 amp SQL-Server)

                                                  ROLLUP(DB2 amp SQL-Server)

                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                  109

                                                  CUBE(DB2 amp SQL-Server)

                                                  CUBE(DB2 amp SQL-Server)

                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                  110

                                                  GROUPING SETS

                                                  On indique explicitement les groupesndash entre ()

                                                  le groupe () est constitueacute de toute la table

                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                  WHERE SP P = PP AND SP S = SS

                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                  HAVING tot-qty gt 100

                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                  111

                                                  Rollup Cube Grouping Setssous MsAccess

                                                  Il y en a pas On peut simuler ces manipulations en

                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                  Peut ecirctre laborieux pour le CUBE

                                                  112

                                                  ROLLUP

                                                  Remarquez le laquo null as cityraquo

                                                  113

                                                  ROLLUP

                                                  114

                                                  ROLLUP

                                                  Et le CUBE

                                                  Une solution pour l ambiguiumlteacute

                                                  de certains nuls

                                                  115

                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                  Wiley (publ)

                                                  116

                                                  Sous-Tables Parameacutetreacutees

                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                  117

                                                  Sous-Tables Parameacutetreacutees

                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                  118

                                                  Sous-Tables Parameacutetreacutees

                                                  119

                                                  Sous-Tables Parameacutetreacutees

                                                  120

                                                  Sous-Tables Parameacutetreacutees

                                                  121

                                                  Sous-Tables Parameacutetreacutees

                                                  122

                                                  Sous-Tables Parameacutetreacutees

                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                  123

                                                  Sous-Tables Parameacutetreacutees

                                                  Exeacutecution autonome

                                                  124

                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                  hellip

                                                  125

                                                  Liste de Choix Multibase

                                                  bull Requecircte Test-liste-de-choix mdb

                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                  126

                                                  Liste de Choix MultibaseReacutesultat

                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                  Tregraves bonne question agrave Microsoft

                                                  148

                                                  FIN

                                                  149

                                                  • SQL Avanceacute 2010
                                                  • Quoi amp Pourquoi
                                                  • Slide 3
                                                  • Synonymes
                                                  • Noms dattributs
                                                  • Slide 6
                                                  • Slide 7
                                                  • Slide 8
                                                  • Insertion dans une Vue
                                                  • Insertion dans une Vue (2)
                                                  • MAJ drsquoune Vue MsAccess
                                                  • MAJ drsquoune Vue MsAccess (2)
                                                  • Suppression dans une Vue MsAccess
                                                  • MsAccess Leacutegendes
                                                  • Expressions de valeur
                                                  • Expressions de valeur (2)
                                                  • Pour en savoir + sur les attributs dynamiques
                                                  • UNION et Noms Drsquoattributs
                                                  • UNION et ORDER BY
                                                  • ORDER BY et expressions de valeur
                                                  • ORDER BY et expressions de valeur (2)
                                                  • Ordre de prioriteacute dopeacuterations
                                                  • Preacutedicat TOP
                                                  • Preacutedicat TOP (2)
                                                  • Clause BETWEEN
                                                  • Limitations de NOT
                                                  • ANY et ALL
                                                  • Injection SQL
                                                  • Injection SQL (2)
                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                  • Tabulations Croiseacutees
                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                  • Tabulations Croiseacutees (2)
                                                  • Tabulations Croiseacutees (3)
                                                  • Tabulations Croiseacutees (4)
                                                  • Tabulations Croiseacutees (5)
                                                  • XOR
                                                  • IMP
                                                  • Sous-requecirctes
                                                  • Sous-requecirctes (2)
                                                  • Sous-requecirctes (3)
                                                  • Sous-requecirctes (4)
                                                  • Sous-requecirctes (5)
                                                  • Sous-requecirctes (6)
                                                  • Sous-requecirctes (7)
                                                  • Application aux Probabiliteacutes
                                                  • Clause FROM imbriqueacutee
                                                  • Clause FROM imbriqueacutee (2)
                                                  • Clause FROM imbriqueacutee (3)
                                                  • Clause FROM imbriqueacutee (4)
                                                  • Clause FROM imbriqueacutee (5)
                                                  • Clause FROM imbriqueacutee (6)
                                                  • Valeurs nulles
                                                  • Valeurs nulles (2)
                                                  • Valeurs nulles (3)
                                                  • Valeurs nulles (4)
                                                  • Fonctions Scalaires DateTemps
                                                  • Fonctions Scalaires DateTemps (2)
                                                  • Fonctions Scalaires DateTemps (3)
                                                  • Fonctions Scalaires DateTemps (4)
                                                  • Fonctions Scalaires DateTemps (5)
                                                  • Fonction Scalaire RND
                                                  • Fonction Scalaire RND (2)
                                                  • Fonctions Financiegraveres
                                                  • Fonctions Financiegraveres (2)
                                                  • Fonction DDB
                                                  • Fonction DDB (2)
                                                  • Fonction PMT
                                                  • Fonction PMT (2)
                                                  • Placement agrave taux variable
                                                  • GROUP BY
                                                  • LIST Function
                                                  • LIST Function (2)
                                                  • GROUP BY avec WHERE
                                                  • GROUP BY (2)
                                                  • GROUP BY avec HAVING
                                                  • T-GROUP BY
                                                  • T-GROUP BY (2)
                                                  • T-GROUP BY (3)
                                                  • T-GROUP BY (4)
                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                  • Rangs Denses (Dense Ranking)
                                                  • Rangs Denses Graphique MsAccess
                                                  • Distribution
                                                  • Reacutesultat
                                                  • Distribution Cumulative
                                                  • Reacutesultat (2)
                                                  • Cateacutegorisation
                                                  • Cateacutegorisation (2)
                                                  • Cateacutegorisation (3)
                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                  • UNION Preacutediction de Valeurs Inconnues
                                                  • Tendance
                                                  • Moyenne Glissante
                                                  • Moyenne Glissante (2)
                                                  • Moyenne Glissante (3)
                                                  • Seacuteries financiegraveres
                                                  • Seacuteries financiegraveres (2)
                                                  • Seacuteries financiegraveres (3)
                                                  • Seacuteries financiegraveres (4)
                                                  • Creacuteation drsquoun Portefeuille
                                                  • Creacuteation drsquoun Portefeuille (2)
                                                  • Creacuteation drsquoun Portefeuille (3)
                                                  • Creacuteation drsquoun Portefeuille (4)
                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                  • ROLLUP (DB2 amp SQL-Server)
                                                  • CUBE (DB2 amp SQL-Server)
                                                  • GROUPING SETS
                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                  • Slide 112
                                                  • Slide 113
                                                  • Slide 114
                                                  • Autres Opeacuterations Utiles
                                                  • Sous-Tables Parameacutetreacutees
                                                  • Sous-Tables Parameacutetreacutees (2)
                                                  • Sous-Tables Parameacutetreacutees (3)
                                                  • Sous-Tables Parameacutetreacutees (4)
                                                  • Sous-Tables Parameacutetreacutees (5)
                                                  • Sous-Tables Parameacutetreacutees (6)
                                                  • Sous-Tables Parameacutetreacutees (7)
                                                  • Sous-Tables Parameacutetreacutees (8)
                                                  • Liste de Choix Multibase
                                                  • Liste de Choix Multibase (2)
                                                  • Liste de Choix Multibase Reacutesultat
                                                  • FIN
                                                  • Slide 149

                                                    26

                                                    Limitations de NOT

                                                    Trouver tous les fournisseurs qui ne sont pas dans une ville dun fournisseur dans SSELECT FROM S WHERE CITY NOT IN

                                                    (SELECT CITY FROM S)

                                                    Que veut dire cette reacuteponse (vide) ndash Il ny a pas de tels fournisseurs

                                                    Hypothegravese de Monde fermeacutendash Ils ne sont pas connus de S

                                                    Hypothegravese de Monde ouvert

                                                    27

                                                    ANY et ALL

                                                    All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                                    (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                    si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                                    si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                                    Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                                    (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                    28

                                                    Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                                    restriction une condition qui annule cette restriction

                                                    Gros deacutegacircts sur le WEB notammentSELECT

                                                    FROM S

                                                    WHERE city=london Or True

                                                    SQL Injection

                                                    S SName Status City

                                                    s1 smith Paris

                                                    s2 Jones 100 london

                                                    s3 Blake 30 Paris

                                                    s4 Clark 10 london

                                                    s5 Adams 30 Athens

                                                    29

                                                    Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                                    True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                                    SELECT

                                                    FROM S

                                                    WHERE status= 100 Or 200

                                                    SELECT

                                                    FROM S

                                                    WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                                    SELECT

                                                    FROM S

                                                    WHERE city=london Or 100

                                                    30

                                                    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                    Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                    BY et les valeurs individuelles en mecircme temps

                                                    ndash Impossible avec SQL standard

                                                    31

                                                    S Total Qty p1 p2 p3 p4 p5 p6

                                                    s1 1300 300 200 400 200 100 100

                                                    s2 700 300 400

                                                    s3 200 200

                                                    s4 900 200 300 400

                                                    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                    Tabulations Croiseacutees

                                                    32

                                                    Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                    Transforment les valeurs dattributs en attributsndash Par exemple

                                                    les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                    les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                    33

                                                    S Total Qty p1 p2 p3 p4 p5 p6

                                                    s1 1300 300 200 400 200 100 100

                                                    s2 700 300 400

                                                    s3 200 200

                                                    s4 900 200 300 400

                                                    Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                    Tabulations Croiseacutees

                                                    34

                                                    TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                    Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                    Tabulations Croiseacutees

                                                    Nouvellescolonnes

                                                    35

                                                    La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                    On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                    Tabulations Croiseacutees

                                                    36

                                                    On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                    Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                    On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                    Mais cette clause naffecte pas les calculs des agreacutegats

                                                    Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                    Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                    Tabulations Croiseacutees

                                                    37

                                                    XORSELECT S[S] SStatus SCity

                                                    FROM S

                                                    WHERE Status=10 Xor city=paris

                                                    bull A noter le traitement du nul dans City

                                                    38

                                                    IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                    bull A noter le traitement du nul dans City

                                                    39

                                                    Sous-requecirctes

                                                    A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                    clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                    rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                    sous-requecircte

                                                    SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                    40

                                                    Sous-requecirctes

                                                    Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                    laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                    vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                    plus grande

                                                    41

                                                    Sous-requecirctes

                                                    Skylinendash Tout objet non-domineacute (cacheacute

                                                    totalement) par un autre

                                                    SELECT X[s] X[p] qty delay

                                                    FROM SP X

                                                    where not exists

                                                    (select from SP as Y

                                                    where (Yqty gt= XQty and YDelay lt XDelay or

                                                    Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                    order by X[p]

                                                    42

                                                    Sous-requecirctes Reacutesultat

                                                    s p qty delay

                                                    s1 p1 300 15

                                                    s4 p1 200 13

                                                    s3 p2 400 15

                                                    s2 p2 300 12

                                                    s1 p3 400 17

                                                    s4 p4 300 11

                                                    s4 p5 400 7

                                                    s1 p6 100 8

                                                    s p qty Delay

                                                    s1 p1 300 15

                                                    s1 p2 200 12

                                                    s1 p3 400 17

                                                    s1 p4 200 11

                                                    s1 p5 100 7

                                                    s1 p6 100 8

                                                    s2 p2 300 12

                                                    s3 p2 400 15

                                                    s4 p1 200 13

                                                    s4 p2 200 15

                                                    s4 p4 300 11

                                                    s4 p5 400 7

                                                    S

                                                    43

                                                    Sous-requecirctes

                                                    On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                    SELECT Count() AS TotalQty

                                                    FROM (select distinct qty from sp)

                                                    On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                    SELECT SP[s] SP[p] qty

                                                    (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                    round(qtyTotalQty 3) AS Fraction

                                                    FROM SP order by [s]

                                                    44

                                                    Sous-requecirctes

                                                    s p qty TotalQty Fraction

                                                    s1 p1 300 1300 0231

                                                    s1 p6 100 1300 0077

                                                    s1 p5 100 1300 0077

                                                    s1 p4 200 1300 0154

                                                    s1 p3 400 1300 0308

                                                    s1 p2 200 1300 0154

                                                    s2 p2 300 300 1

                                                    s3 p2 400 400 1

                                                    s4 p5 400 1100 0364

                                                    s4 p4 300 1100 0273

                                                    s4 p2 200 1100 0182

                                                    bull ReacutesultatSP

                                                    s p qty

                                                    s1 p1 300

                                                    s1 p2 200

                                                    s1 p3 400

                                                    s1 p4 200

                                                    s1 p5 100

                                                    s1 p6 100

                                                    s2 p2 300

                                                    s3 p2 400

                                                    s4 p1 200

                                                    s4 p2 200

                                                    s4 p4 300

                                                    s4 p5 400

                                                    45

                                                    Sous-requecirctesbull En Mode Graphique

                                                    s p qtyTotalQty

                                                    Fraction

                                                    s1 p1 300 1300 0231

                                                    s1 p6 100 1300 0077

                                                    s1 p5 100 1300 0077

                                                    s1 p4 200 1300 0154

                                                    s1 p3 400 1300 0308

                                                    s1 p2 200 1300 0154

                                                    s2 p2 300 300 1

                                                    s3 p2 400 400 1

                                                    s4 p5 400 1100 0364

                                                    s4 p4 300 1100 0273

                                                    s4 p2 200 1100 0182

                                                    46

                                                    Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                    SELECT (select count(qty) from SP

                                                    where qty gt= [seuil svp ]) count() as reacutesultat

                                                    FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                    probabiliteacute conditionnelle

                                                    47

                                                    Clause FROM imbriqueacutee

                                                    Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                    Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                    Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                    Agrave essayer

                                                    48

                                                    Clause FROM imbriqueacuteePossibiliteacutes

                                                    ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                    ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                    MsAccess

                                                    ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                    Mais la reacutefeacuterence au nom de la requecircte OK

                                                    49

                                                    Clause FROM imbriqueacutee

                                                    SELECT sum(weight) AS [poids-total]

                                                    FROM (SELECT weight pcity FROM P WHERE City like l

                                                    UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                    50

                                                    Clause FROM imbriqueacutee

                                                    select avg(moy1) as [moyenne-des-moyennes]

                                                    FROM

                                                    (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                    51

                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                    52

                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                    totaux partiels et total geacuteneacuteral

                                                    total_Id TotalQty

                                                    s1 1300

                                                    s2 300

                                                    s3 400

                                                    s4 400

                                                    total Geacuteneacuteral

                                                    2400

                                                    53

                                                    Valeurs nulles

                                                    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                    Non WHERE HAVING GROUP BY (rel 1)

                                                    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                    MsAccess Oui DISTINCT Autres clauses

                                                    54

                                                    Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                    1 x gt y est vrai ou faux

                                                    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                    SELECT FROM S WHERE CITY =Paris

                                                    UNION

                                                    SELECT FROM S WHERE NOT CITY = Paris

                                                    est toujours pourquoi faire simpleSELECT FROM S

                                                    si on peut faire compliqueacute

                                                    55

                                                    Valeurs nullesValeurs nulles

                                                    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                    56

                                                    Valeurs nulles

                                                    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                    LOG (nul) -gt Error A voir cas par cas

                                                    57

                                                    Fonctions Scalaires DateTemps

                                                    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                    58

                                                    Fonctions Scalaires DateTemps

                                                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                    weekday(day(now())-1) AS [day]FROM S

                                                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                    59

                                                    Fonctions Scalaires DateTemps

                                                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                    Interval Explanation

                                                    Yyyy Year

                                                    q Quarter

                                                    m Month

                                                    y Day of year

                                                    d Day

                                                    w Weekday

                                                    ww Week

                                                    h Hour

                                                    n Minute

                                                    s Second

                                                    60

                                                    Fonctions Scalaires DateTemps

                                                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                    Test DateDiff

                                                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                    61

                                                    Fonctions Scalaires DateTemps

                                                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                    Liste tous les tuples ougrave DateV est de Janvier 2009

                                                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                    62

                                                    Fonction Scalaire RND

                                                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                    FROM SPORDER BY rnd(qty) DESC

                                                    echantillon s rank

                                                    s1 502628087997437E-02

                                                    s4 0518015921115875

                                                    s3 075702953338623

                                                    63

                                                    Fonction Scalaire RND

                                                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                    FROM SPORDER BY rnd(qty) DESC

                                                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                    Votre commentaire ici

                                                    64

                                                    Fonctions Financiegraveres

                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                    65

                                                    Fonctions Financiegraveres

                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                    66

                                                    Fonction DDB

                                                    insert into DDB (cost salvage life factor amortiss period)

                                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                                    DDB(cost salvage life period factor) as amortiss period

                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                    67

                                                    Fonction DDB

                                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                    68

                                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                    nombres neacutegatifs

                                                    Fonction PMT

                                                    69

                                                    Fonction PMT

                                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                    Fonction PMT calcul dannuiteacute demprunt

                                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                    preacutesentevaleur_payeacutee surprime

                                                    -16049 005 20 200000 -320980 -120980

                                                    70

                                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                    Et les nuls que log ne supporte pas

                                                    Anneacutee relative

                                                    Taux

                                                    1 4

                                                    2 4

                                                    3 3

                                                    4 5

                                                    5 5

                                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                                    71

                                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                    est eacutequivalente agrave

                                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                    WHERE XP = SPP) FROM SP

                                                    Testez

                                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                    72

                                                    LIST Function La requecircte

                                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                    Comme les tabulations croiseacutees

                                                    ndash Mais en + simple

                                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                    ndash En mono attribut (2004)

                                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                    sous-formulaires

                                                    73

                                                    LIST Function

                                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                    74

                                                    GROUP BY avec WHERE

                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                    75

                                                    GROUP BY

                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                    Pourquoi

                                                    76

                                                    GROUP BY avec HAVING

                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                    77

                                                    T-GROUP BY Proposeacute pour SQL

                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                    Le rocircle de -join par rapport agrave equi-join

                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                    78

                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                    FROM SP Vrai ou Faux

                                                    79

                                                    T-GROUP BY

                                                    Reacutesultat

                                                    part avg_qty_other_parts part_avg_qty

                                                    p1 250 300

                                                    p2 262 250

                                                    p3 245 400

                                                    p4 260 250

                                                    p5 260 250

                                                    p6 272 100

                                                    80

                                                    T-GROUP BY

                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                    81

                                                    Rangs Non-Denses(Non Dense Ranking)

                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                    s p qtyND-rank

                                                    s4 p5 400 1

                                                    s3 p2 400 1

                                                    s1 p3 400 1

                                                    s4 p4 300 4

                                                    s2 p2 300 4

                                                    s1 p1 300 4

                                                    s4 p2 200 7

                                                    s1 p4 200 7

                                                    s1 p2 200 7

                                                    s4 p1 200 7

                                                    s1 p6 100 11

                                                    s1 p5 100 11

                                                    82

                                                    Rangs Non-Denses(Graphique MsAccess)

                                                    s p qty ND-rank

                                                    s4 p5 400 1

                                                    s3 p2 400 1

                                                    s1 p3 400 1

                                                    s4 p4 300 4

                                                    s2 p2 300 4

                                                    s1 p1 300 4

                                                    s4 p2 200 7

                                                    s1 p4 200 7

                                                    s1 p2 200 7

                                                    s4 p1 200 7

                                                    s1 p6 100 11

                                                    s1 p5 100 11

                                                    83

                                                    Rangs Denses(Dense Ranking)

                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                    s p qtyD-rank

                                                    s1 p3 400 1

                                                    s3 p2 400 1

                                                    s4 p5 400 1

                                                    s1 p1 300 2

                                                    s2 p2 300 2

                                                    s4 p4 300 2

                                                    s1 p4 200 3

                                                    s1 p2 200 3

                                                    s4 p2 200 3

                                                    s4 p1 200 3

                                                    s1 p6 100 4

                                                    s1 p5 100 4

                                                    84

                                                    Rangs DensesGraphique MsAccess

                                                    s p qty D-rank

                                                    s1 p3 400 1

                                                    s3 p2 400 1

                                                    s4 p5 400 1

                                                    s1 p1 300 2

                                                    s2 p2 300 2

                                                    s4 p4 300 2

                                                    s1 p4 200 3

                                                    s1 p2 200 3

                                                    s4 p2 200 3

                                                    s4 p1 200 3

                                                    s1 p6 100 4

                                                    s1 p5 100 4

                                                    85

                                                    Distribution

                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                    86

                                                    Reacutesultat

                                                    s Distribution

                                                    s1 0419

                                                    s2 0097

                                                    s3 0129

                                                    s4 0355

                                                    87

                                                    Distribution Cumulative

                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                    FROM SP

                                                    ORDER BY SP[s]

                                                    88

                                                    Reacutesultat

                                                    sDistribution Cumuleacutee

                                                    s1 0419

                                                    s2 0516

                                                    s3 0645

                                                    s4 1

                                                    89

                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                    90

                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                    FROM S

                                                    GROUP BY S[S] SSName SStatus SCity

                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                    s1 Smith Paris good good

                                                    s2 Jones 100 london good VGood

                                                    s3 Blake 30 Paris good good

                                                    s4 Clark 10 london OK OK

                                                    s5 Adams 30 Athens good good

                                                    bull Notez le traitement du null

                                                    91

                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                    SELECT Ppname weight Very Heavy as Warning

                                                    FROM P where weight gt 13

                                                    union

                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                    UNION

                                                    select Ppname weight Light as warn from p where weight lt 10

                                                    ORDER BY warning DESC weight DESC

                                                    pname weight Warning

                                                    cam 19 Very Heavy

                                                    cog 19 Very Heavy

                                                    bolt 17 Very Heavy

                                                    nut 14 Very Heavy

                                                    screw 14 Very Heavy

                                                    nut 14 Quite Heavy

                                                    screw 14 Quite Heavy

                                                    screw 12 Quite Heavy

                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                    92

                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                    On considegravere AVG(Qty1) pour Qty

                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                    SP

                                                    s p qtyQty1

                                                    s1 p1 300 400

                                                    s1 p2 200

                                                    s1 p3 400 600

                                                    s1 p4 200 300

                                                    s1 p5 100

                                                    s1 p6 100 200

                                                    s2 p2 300 500

                                                    s3 p2 400

                                                    s4 p1 200 100

                                                    s4 p2 200

                                                    s4 p4 300

                                                    s4 p5 400

                                                    93

                                                    UNIONPreacutediction de Valeurs Inconnues

                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                    SP

                                                    s p qtyQty1

                                                    s1 p1 300 400

                                                    s1 p2 200

                                                    s1 p3 400 600

                                                    s1 p4 200 300

                                                    s1 p5 100

                                                    s1 p6 100 200

                                                    s2 p2 300 500

                                                    s3 p2 400

                                                    s4 p1 200 100

                                                    s4 p2 200

                                                    s4 p4 300

                                                    s4 p5 400

                                                    qty for partpredicted or

                                                    unknown Qty1

                                                    100 p5

                                                    100 predicted value 200

                                                    200 p2

                                                    200 predicted value 200

                                                    300 p4

                                                    300 predicted value 450

                                                    400 p2

                                                    400 p5

                                                    400 predicted value 600

                                                    94

                                                    Tendance

                                                    qty Qty1

                                                    100 200

                                                    200 300

                                                    300 400

                                                    400 600

                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                    Graph 3D avec Qty en abscisses

                                                    95

                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                    30102008 120 27102008 4

                                                    25102008 131 22102008 4

                                                    23102008 127 20102008 4

                                                    17102008 269 14102008 4

                                                    15102008 60 12102008 4

                                                    11102008 295 08102008 4

                                                    09102008 340 06102008 4

                                                    08102008 324 05102008 4

                                                    06102008 315 03102008 4

                                                    96

                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                    Graphique avec une info-bulle

                                                    97

                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                    glissantes

                                                    bull CSUM (Cumulative (Running) Sums)

                                                    bull MAVG

                                                    bull MSUM

                                                    bull MDIFF

                                                    bull Voir Teradata + loin

                                                    98

                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                    99

                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                    Entiers est une table aux avec la colonne de12hellip10

                                                    100

                                                    Seacuteries financiegraveres

                                                    capital taux nval apregraves n ans

                                                    taux1val1 apregraves n ans

                                                    GainAbs GainRel

                                                    100 005 1 105 006 106 1 1

                                                    100 005 2 110 006 112 2 2

                                                    100 005 3 115 006 119 4 4

                                                    100 005 4 121 006 126 5 5

                                                    100 005 5 127 006 133 6 6

                                                    100 005 6 134 006 141 7 7

                                                    100 005 7 140 006 150 10 10

                                                    100 005 8 147 006 159 12 12

                                                    100 005 9 155 006 168 13 13

                                                    100 005 10 162 006 179 17 17

                                                    100 005 11 171 006 189 18 18

                                                    100 005 12 179 006 201 22 22

                                                    100 005 13 188 006 213 25 25

                                                    100 005 14 197 006 226 29 29

                                                    100 005 15 207 006 239 32 32

                                                    100 005 16 218 006 254 36 36

                                                    100 005 17 229 006 269 40 40

                                                    100 005 18 240 006 285 45 45

                                                    100 005 19 252 006 302 50 50

                                                    100 005 20 265 006 320 55 55

                                                    101

                                                    Seacuteries financiegraveres

                                                    102

                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                    financiers de la table Produits

                                                    bull Dans la limite L de la somme donneacutee

                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                    bull En ordre descendant de prix

                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                    bull Plusieurs actionshellip

                                                    103

                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                    P prix

                                                    p3 200

                                                    p1 200

                                                    p2 400

                                                    p3 200

                                                    p4 100

                                                    p6 100

                                                    p5 300

                                                    p8 300

                                                    p7 400

                                                    p10 200

                                                    p12 300

                                                    p13 300

                                                    104

                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                    ORDER BY 4 desc 8 123

                                                    105

                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                    106

                                                    Creacuteation drsquoun Portefeuille Discussion

                                                    Creacuteation drsquoun Portefeuille Discussion

                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                    107

                                                    Creacuteation drsquoun Portefeuille Discussion

                                                    Creacuteation drsquoun Portefeuille Discussion

                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                    108

                                                    ROLLUP(DB2 amp SQL-Server)

                                                    ROLLUP(DB2 amp SQL-Server)

                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                    109

                                                    CUBE(DB2 amp SQL-Server)

                                                    CUBE(DB2 amp SQL-Server)

                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                    110

                                                    GROUPING SETS

                                                    On indique explicitement les groupesndash entre ()

                                                    le groupe () est constitueacute de toute la table

                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                    WHERE SP P = PP AND SP S = SS

                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                    HAVING tot-qty gt 100

                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                    111

                                                    Rollup Cube Grouping Setssous MsAccess

                                                    Il y en a pas On peut simuler ces manipulations en

                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                    Peut ecirctre laborieux pour le CUBE

                                                    112

                                                    ROLLUP

                                                    Remarquez le laquo null as cityraquo

                                                    113

                                                    ROLLUP

                                                    114

                                                    ROLLUP

                                                    Et le CUBE

                                                    Une solution pour l ambiguiumlteacute

                                                    de certains nuls

                                                    115

                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                    Wiley (publ)

                                                    116

                                                    Sous-Tables Parameacutetreacutees

                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                    117

                                                    Sous-Tables Parameacutetreacutees

                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                    118

                                                    Sous-Tables Parameacutetreacutees

                                                    119

                                                    Sous-Tables Parameacutetreacutees

                                                    120

                                                    Sous-Tables Parameacutetreacutees

                                                    121

                                                    Sous-Tables Parameacutetreacutees

                                                    122

                                                    Sous-Tables Parameacutetreacutees

                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                    123

                                                    Sous-Tables Parameacutetreacutees

                                                    Exeacutecution autonome

                                                    124

                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                    hellip

                                                    125

                                                    Liste de Choix Multibase

                                                    bull Requecircte Test-liste-de-choix mdb

                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                    126

                                                    Liste de Choix MultibaseReacutesultat

                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                    Tregraves bonne question agrave Microsoft

                                                    148

                                                    FIN

                                                    149

                                                    • SQL Avanceacute 2010
                                                    • Quoi amp Pourquoi
                                                    • Slide 3
                                                    • Synonymes
                                                    • Noms dattributs
                                                    • Slide 6
                                                    • Slide 7
                                                    • Slide 8
                                                    • Insertion dans une Vue
                                                    • Insertion dans une Vue (2)
                                                    • MAJ drsquoune Vue MsAccess
                                                    • MAJ drsquoune Vue MsAccess (2)
                                                    • Suppression dans une Vue MsAccess
                                                    • MsAccess Leacutegendes
                                                    • Expressions de valeur
                                                    • Expressions de valeur (2)
                                                    • Pour en savoir + sur les attributs dynamiques
                                                    • UNION et Noms Drsquoattributs
                                                    • UNION et ORDER BY
                                                    • ORDER BY et expressions de valeur
                                                    • ORDER BY et expressions de valeur (2)
                                                    • Ordre de prioriteacute dopeacuterations
                                                    • Preacutedicat TOP
                                                    • Preacutedicat TOP (2)
                                                    • Clause BETWEEN
                                                    • Limitations de NOT
                                                    • ANY et ALL
                                                    • Injection SQL
                                                    • Injection SQL (2)
                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                    • Tabulations Croiseacutees
                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                    • Tabulations Croiseacutees (2)
                                                    • Tabulations Croiseacutees (3)
                                                    • Tabulations Croiseacutees (4)
                                                    • Tabulations Croiseacutees (5)
                                                    • XOR
                                                    • IMP
                                                    • Sous-requecirctes
                                                    • Sous-requecirctes (2)
                                                    • Sous-requecirctes (3)
                                                    • Sous-requecirctes (4)
                                                    • Sous-requecirctes (5)
                                                    • Sous-requecirctes (6)
                                                    • Sous-requecirctes (7)
                                                    • Application aux Probabiliteacutes
                                                    • Clause FROM imbriqueacutee
                                                    • Clause FROM imbriqueacutee (2)
                                                    • Clause FROM imbriqueacutee (3)
                                                    • Clause FROM imbriqueacutee (4)
                                                    • Clause FROM imbriqueacutee (5)
                                                    • Clause FROM imbriqueacutee (6)
                                                    • Valeurs nulles
                                                    • Valeurs nulles (2)
                                                    • Valeurs nulles (3)
                                                    • Valeurs nulles (4)
                                                    • Fonctions Scalaires DateTemps
                                                    • Fonctions Scalaires DateTemps (2)
                                                    • Fonctions Scalaires DateTemps (3)
                                                    • Fonctions Scalaires DateTemps (4)
                                                    • Fonctions Scalaires DateTemps (5)
                                                    • Fonction Scalaire RND
                                                    • Fonction Scalaire RND (2)
                                                    • Fonctions Financiegraveres
                                                    • Fonctions Financiegraveres (2)
                                                    • Fonction DDB
                                                    • Fonction DDB (2)
                                                    • Fonction PMT
                                                    • Fonction PMT (2)
                                                    • Placement agrave taux variable
                                                    • GROUP BY
                                                    • LIST Function
                                                    • LIST Function (2)
                                                    • GROUP BY avec WHERE
                                                    • GROUP BY (2)
                                                    • GROUP BY avec HAVING
                                                    • T-GROUP BY
                                                    • T-GROUP BY (2)
                                                    • T-GROUP BY (3)
                                                    • T-GROUP BY (4)
                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                    • Rangs Denses (Dense Ranking)
                                                    • Rangs Denses Graphique MsAccess
                                                    • Distribution
                                                    • Reacutesultat
                                                    • Distribution Cumulative
                                                    • Reacutesultat (2)
                                                    • Cateacutegorisation
                                                    • Cateacutegorisation (2)
                                                    • Cateacutegorisation (3)
                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                    • UNION Preacutediction de Valeurs Inconnues
                                                    • Tendance
                                                    • Moyenne Glissante
                                                    • Moyenne Glissante (2)
                                                    • Moyenne Glissante (3)
                                                    • Seacuteries financiegraveres
                                                    • Seacuteries financiegraveres (2)
                                                    • Seacuteries financiegraveres (3)
                                                    • Seacuteries financiegraveres (4)
                                                    • Creacuteation drsquoun Portefeuille
                                                    • Creacuteation drsquoun Portefeuille (2)
                                                    • Creacuteation drsquoun Portefeuille (3)
                                                    • Creacuteation drsquoun Portefeuille (4)
                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                    • ROLLUP (DB2 amp SQL-Server)
                                                    • CUBE (DB2 amp SQL-Server)
                                                    • GROUPING SETS
                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                    • Slide 112
                                                    • Slide 113
                                                    • Slide 114
                                                    • Autres Opeacuterations Utiles
                                                    • Sous-Tables Parameacutetreacutees
                                                    • Sous-Tables Parameacutetreacutees (2)
                                                    • Sous-Tables Parameacutetreacutees (3)
                                                    • Sous-Tables Parameacutetreacutees (4)
                                                    • Sous-Tables Parameacutetreacutees (5)
                                                    • Sous-Tables Parameacutetreacutees (6)
                                                    • Sous-Tables Parameacutetreacutees (7)
                                                    • Sous-Tables Parameacutetreacutees (8)
                                                    • Liste de Choix Multibase
                                                    • Liste de Choix Multibase (2)
                                                    • Liste de Choix Multibase Reacutesultat
                                                    • FIN
                                                    • Slide 149

                                                      27

                                                      ANY et ALL

                                                      All peut surprendre dune maniegravere aleacuteatoireSELECT FROM S WHERE STATUS = ALL

                                                      (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                      si le reacutesultat interne est (x x) le reacutesultat peut ecirctre non-vide

                                                      si le reacutesultat interne est (xy ltgt x x) le reacutesultat est vide

                                                      Souvent lintention de telles requecirctes est SELECT FROM S WHERE STATUS = ANY

                                                      (SELECT STATUS FROM S WHERE SNAME = BNP)

                                                      28

                                                      Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                                      restriction une condition qui annule cette restriction

                                                      Gros deacutegacircts sur le WEB notammentSELECT

                                                      FROM S

                                                      WHERE city=london Or True

                                                      SQL Injection

                                                      S SName Status City

                                                      s1 smith Paris

                                                      s2 Jones 100 london

                                                      s3 Blake 30 Paris

                                                      s4 Clark 10 london

                                                      s5 Adams 30 Athens

                                                      29

                                                      Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                                      True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                                      SELECT

                                                      FROM S

                                                      WHERE status= 100 Or 200

                                                      SELECT

                                                      FROM S

                                                      WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                                      SELECT

                                                      FROM S

                                                      WHERE city=london Or 100

                                                      30

                                                      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                      Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                      BY et les valeurs individuelles en mecircme temps

                                                      ndash Impossible avec SQL standard

                                                      31

                                                      S Total Qty p1 p2 p3 p4 p5 p6

                                                      s1 1300 300 200 400 200 100 100

                                                      s2 700 300 400

                                                      s3 200 200

                                                      s4 900 200 300 400

                                                      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                      Tabulations Croiseacutees

                                                      32

                                                      Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                      Transforment les valeurs dattributs en attributsndash Par exemple

                                                      les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                      les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                      33

                                                      S Total Qty p1 p2 p3 p4 p5 p6

                                                      s1 1300 300 200 400 200 100 100

                                                      s2 700 300 400

                                                      s3 200 200

                                                      s4 900 200 300 400

                                                      Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                      Tabulations Croiseacutees

                                                      34

                                                      TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                      Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                      Tabulations Croiseacutees

                                                      Nouvellescolonnes

                                                      35

                                                      La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                      On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                      Tabulations Croiseacutees

                                                      36

                                                      On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                      Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                      On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                      Mais cette clause naffecte pas les calculs des agreacutegats

                                                      Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                      Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                      Tabulations Croiseacutees

                                                      37

                                                      XORSELECT S[S] SStatus SCity

                                                      FROM S

                                                      WHERE Status=10 Xor city=paris

                                                      bull A noter le traitement du nul dans City

                                                      38

                                                      IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                      bull A noter le traitement du nul dans City

                                                      39

                                                      Sous-requecirctes

                                                      A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                      clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                      rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                      sous-requecircte

                                                      SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                      40

                                                      Sous-requecirctes

                                                      Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                      laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                      vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                      plus grande

                                                      41

                                                      Sous-requecirctes

                                                      Skylinendash Tout objet non-domineacute (cacheacute

                                                      totalement) par un autre

                                                      SELECT X[s] X[p] qty delay

                                                      FROM SP X

                                                      where not exists

                                                      (select from SP as Y

                                                      where (Yqty gt= XQty and YDelay lt XDelay or

                                                      Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                      order by X[p]

                                                      42

                                                      Sous-requecirctes Reacutesultat

                                                      s p qty delay

                                                      s1 p1 300 15

                                                      s4 p1 200 13

                                                      s3 p2 400 15

                                                      s2 p2 300 12

                                                      s1 p3 400 17

                                                      s4 p4 300 11

                                                      s4 p5 400 7

                                                      s1 p6 100 8

                                                      s p qty Delay

                                                      s1 p1 300 15

                                                      s1 p2 200 12

                                                      s1 p3 400 17

                                                      s1 p4 200 11

                                                      s1 p5 100 7

                                                      s1 p6 100 8

                                                      s2 p2 300 12

                                                      s3 p2 400 15

                                                      s4 p1 200 13

                                                      s4 p2 200 15

                                                      s4 p4 300 11

                                                      s4 p5 400 7

                                                      S

                                                      43

                                                      Sous-requecirctes

                                                      On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                      SELECT Count() AS TotalQty

                                                      FROM (select distinct qty from sp)

                                                      On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                      SELECT SP[s] SP[p] qty

                                                      (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                      round(qtyTotalQty 3) AS Fraction

                                                      FROM SP order by [s]

                                                      44

                                                      Sous-requecirctes

                                                      s p qty TotalQty Fraction

                                                      s1 p1 300 1300 0231

                                                      s1 p6 100 1300 0077

                                                      s1 p5 100 1300 0077

                                                      s1 p4 200 1300 0154

                                                      s1 p3 400 1300 0308

                                                      s1 p2 200 1300 0154

                                                      s2 p2 300 300 1

                                                      s3 p2 400 400 1

                                                      s4 p5 400 1100 0364

                                                      s4 p4 300 1100 0273

                                                      s4 p2 200 1100 0182

                                                      bull ReacutesultatSP

                                                      s p qty

                                                      s1 p1 300

                                                      s1 p2 200

                                                      s1 p3 400

                                                      s1 p4 200

                                                      s1 p5 100

                                                      s1 p6 100

                                                      s2 p2 300

                                                      s3 p2 400

                                                      s4 p1 200

                                                      s4 p2 200

                                                      s4 p4 300

                                                      s4 p5 400

                                                      45

                                                      Sous-requecirctesbull En Mode Graphique

                                                      s p qtyTotalQty

                                                      Fraction

                                                      s1 p1 300 1300 0231

                                                      s1 p6 100 1300 0077

                                                      s1 p5 100 1300 0077

                                                      s1 p4 200 1300 0154

                                                      s1 p3 400 1300 0308

                                                      s1 p2 200 1300 0154

                                                      s2 p2 300 300 1

                                                      s3 p2 400 400 1

                                                      s4 p5 400 1100 0364

                                                      s4 p4 300 1100 0273

                                                      s4 p2 200 1100 0182

                                                      46

                                                      Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                      SELECT (select count(qty) from SP

                                                      where qty gt= [seuil svp ]) count() as reacutesultat

                                                      FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                      probabiliteacute conditionnelle

                                                      47

                                                      Clause FROM imbriqueacutee

                                                      Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                      Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                      Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                      Agrave essayer

                                                      48

                                                      Clause FROM imbriqueacuteePossibiliteacutes

                                                      ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                      ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                      MsAccess

                                                      ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                      Mais la reacutefeacuterence au nom de la requecircte OK

                                                      49

                                                      Clause FROM imbriqueacutee

                                                      SELECT sum(weight) AS [poids-total]

                                                      FROM (SELECT weight pcity FROM P WHERE City like l

                                                      UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                      50

                                                      Clause FROM imbriqueacutee

                                                      select avg(moy1) as [moyenne-des-moyennes]

                                                      FROM

                                                      (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                      UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                      51

                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                      52

                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                      totaux partiels et total geacuteneacuteral

                                                      total_Id TotalQty

                                                      s1 1300

                                                      s2 300

                                                      s3 400

                                                      s4 400

                                                      total Geacuteneacuteral

                                                      2400

                                                      53

                                                      Valeurs nulles

                                                      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                      Non WHERE HAVING GROUP BY (rel 1)

                                                      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                      MsAccess Oui DISTINCT Autres clauses

                                                      54

                                                      Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                      1 x gt y est vrai ou faux

                                                      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                      SELECT FROM S WHERE CITY =Paris

                                                      UNION

                                                      SELECT FROM S WHERE NOT CITY = Paris

                                                      est toujours pourquoi faire simpleSELECT FROM S

                                                      si on peut faire compliqueacute

                                                      55

                                                      Valeurs nullesValeurs nulles

                                                      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                      56

                                                      Valeurs nulles

                                                      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                      LOG (nul) -gt Error A voir cas par cas

                                                      57

                                                      Fonctions Scalaires DateTemps

                                                      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                      58

                                                      Fonctions Scalaires DateTemps

                                                      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                      weekday(day(now())-1) AS [day]FROM S

                                                      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                      59

                                                      Fonctions Scalaires DateTemps

                                                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                      Interval Explanation

                                                      Yyyy Year

                                                      q Quarter

                                                      m Month

                                                      y Day of year

                                                      d Day

                                                      w Weekday

                                                      ww Week

                                                      h Hour

                                                      n Minute

                                                      s Second

                                                      60

                                                      Fonctions Scalaires DateTemps

                                                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                      Test DateDiff

                                                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                      61

                                                      Fonctions Scalaires DateTemps

                                                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                      Liste tous les tuples ougrave DateV est de Janvier 2009

                                                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                      62

                                                      Fonction Scalaire RND

                                                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                      FROM SPORDER BY rnd(qty) DESC

                                                      echantillon s rank

                                                      s1 502628087997437E-02

                                                      s4 0518015921115875

                                                      s3 075702953338623

                                                      63

                                                      Fonction Scalaire RND

                                                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                      FROM SPORDER BY rnd(qty) DESC

                                                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                      Votre commentaire ici

                                                      64

                                                      Fonctions Financiegraveres

                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                      65

                                                      Fonctions Financiegraveres

                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                      66

                                                      Fonction DDB

                                                      insert into DDB (cost salvage life factor amortiss period)

                                                      select 100 as cost 70 as salvage 5 as life 1 as factor

                                                      DDB(cost salvage life period factor) as amortiss period

                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                      67

                                                      Fonction DDB

                                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                      68

                                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                      nombres neacutegatifs

                                                      Fonction PMT

                                                      69

                                                      Fonction PMT

                                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                      Fonction PMT calcul dannuiteacute demprunt

                                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                      preacutesentevaleur_payeacutee surprime

                                                      -16049 005 20 200000 -320980 -120980

                                                      70

                                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                      Et les nuls que log ne supporte pas

                                                      Anneacutee relative

                                                      Taux

                                                      1 4

                                                      2 4

                                                      3 3

                                                      4 5

                                                      5 5

                                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                                      71

                                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                      est eacutequivalente agrave

                                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                      WHERE XP = SPP) FROM SP

                                                      Testez

                                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                      72

                                                      LIST Function La requecircte

                                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                      Comme les tabulations croiseacutees

                                                      ndash Mais en + simple

                                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                      ndash En mono attribut (2004)

                                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                      sous-formulaires

                                                      73

                                                      LIST Function

                                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                      74

                                                      GROUP BY avec WHERE

                                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                      75

                                                      GROUP BY

                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                      Pourquoi

                                                      76

                                                      GROUP BY avec HAVING

                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                      77

                                                      T-GROUP BY Proposeacute pour SQL

                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                      Le rocircle de -join par rapport agrave equi-join

                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                      78

                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                      FROM SP Vrai ou Faux

                                                      79

                                                      T-GROUP BY

                                                      Reacutesultat

                                                      part avg_qty_other_parts part_avg_qty

                                                      p1 250 300

                                                      p2 262 250

                                                      p3 245 400

                                                      p4 260 250

                                                      p5 260 250

                                                      p6 272 100

                                                      80

                                                      T-GROUP BY

                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                      81

                                                      Rangs Non-Denses(Non Dense Ranking)

                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                      s p qtyND-rank

                                                      s4 p5 400 1

                                                      s3 p2 400 1

                                                      s1 p3 400 1

                                                      s4 p4 300 4

                                                      s2 p2 300 4

                                                      s1 p1 300 4

                                                      s4 p2 200 7

                                                      s1 p4 200 7

                                                      s1 p2 200 7

                                                      s4 p1 200 7

                                                      s1 p6 100 11

                                                      s1 p5 100 11

                                                      82

                                                      Rangs Non-Denses(Graphique MsAccess)

                                                      s p qty ND-rank

                                                      s4 p5 400 1

                                                      s3 p2 400 1

                                                      s1 p3 400 1

                                                      s4 p4 300 4

                                                      s2 p2 300 4

                                                      s1 p1 300 4

                                                      s4 p2 200 7

                                                      s1 p4 200 7

                                                      s1 p2 200 7

                                                      s4 p1 200 7

                                                      s1 p6 100 11

                                                      s1 p5 100 11

                                                      83

                                                      Rangs Denses(Dense Ranking)

                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                      s p qtyD-rank

                                                      s1 p3 400 1

                                                      s3 p2 400 1

                                                      s4 p5 400 1

                                                      s1 p1 300 2

                                                      s2 p2 300 2

                                                      s4 p4 300 2

                                                      s1 p4 200 3

                                                      s1 p2 200 3

                                                      s4 p2 200 3

                                                      s4 p1 200 3

                                                      s1 p6 100 4

                                                      s1 p5 100 4

                                                      84

                                                      Rangs DensesGraphique MsAccess

                                                      s p qty D-rank

                                                      s1 p3 400 1

                                                      s3 p2 400 1

                                                      s4 p5 400 1

                                                      s1 p1 300 2

                                                      s2 p2 300 2

                                                      s4 p4 300 2

                                                      s1 p4 200 3

                                                      s1 p2 200 3

                                                      s4 p2 200 3

                                                      s4 p1 200 3

                                                      s1 p6 100 4

                                                      s1 p5 100 4

                                                      85

                                                      Distribution

                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                      86

                                                      Reacutesultat

                                                      s Distribution

                                                      s1 0419

                                                      s2 0097

                                                      s3 0129

                                                      s4 0355

                                                      87

                                                      Distribution Cumulative

                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                      FROM SP

                                                      ORDER BY SP[s]

                                                      88

                                                      Reacutesultat

                                                      sDistribution Cumuleacutee

                                                      s1 0419

                                                      s2 0516

                                                      s3 0645

                                                      s4 1

                                                      89

                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                      90

                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                      FROM S

                                                      GROUP BY S[S] SSName SStatus SCity

                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                      s1 Smith Paris good good

                                                      s2 Jones 100 london good VGood

                                                      s3 Blake 30 Paris good good

                                                      s4 Clark 10 london OK OK

                                                      s5 Adams 30 Athens good good

                                                      bull Notez le traitement du null

                                                      91

                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                      SELECT Ppname weight Very Heavy as Warning

                                                      FROM P where weight gt 13

                                                      union

                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                      UNION

                                                      select Ppname weight Light as warn from p where weight lt 10

                                                      ORDER BY warning DESC weight DESC

                                                      pname weight Warning

                                                      cam 19 Very Heavy

                                                      cog 19 Very Heavy

                                                      bolt 17 Very Heavy

                                                      nut 14 Very Heavy

                                                      screw 14 Very Heavy

                                                      nut 14 Quite Heavy

                                                      screw 14 Quite Heavy

                                                      screw 12 Quite Heavy

                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                      92

                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                      On considegravere AVG(Qty1) pour Qty

                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                      SP

                                                      s p qtyQty1

                                                      s1 p1 300 400

                                                      s1 p2 200

                                                      s1 p3 400 600

                                                      s1 p4 200 300

                                                      s1 p5 100

                                                      s1 p6 100 200

                                                      s2 p2 300 500

                                                      s3 p2 400

                                                      s4 p1 200 100

                                                      s4 p2 200

                                                      s4 p4 300

                                                      s4 p5 400

                                                      93

                                                      UNIONPreacutediction de Valeurs Inconnues

                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                      SP

                                                      s p qtyQty1

                                                      s1 p1 300 400

                                                      s1 p2 200

                                                      s1 p3 400 600

                                                      s1 p4 200 300

                                                      s1 p5 100

                                                      s1 p6 100 200

                                                      s2 p2 300 500

                                                      s3 p2 400

                                                      s4 p1 200 100

                                                      s4 p2 200

                                                      s4 p4 300

                                                      s4 p5 400

                                                      qty for partpredicted or

                                                      unknown Qty1

                                                      100 p5

                                                      100 predicted value 200

                                                      200 p2

                                                      200 predicted value 200

                                                      300 p4

                                                      300 predicted value 450

                                                      400 p2

                                                      400 p5

                                                      400 predicted value 600

                                                      94

                                                      Tendance

                                                      qty Qty1

                                                      100 200

                                                      200 300

                                                      300 400

                                                      400 600

                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                      Graph 3D avec Qty en abscisses

                                                      95

                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                      30102008 120 27102008 4

                                                      25102008 131 22102008 4

                                                      23102008 127 20102008 4

                                                      17102008 269 14102008 4

                                                      15102008 60 12102008 4

                                                      11102008 295 08102008 4

                                                      09102008 340 06102008 4

                                                      08102008 324 05102008 4

                                                      06102008 315 03102008 4

                                                      96

                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                      Graphique avec une info-bulle

                                                      97

                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                      glissantes

                                                      bull CSUM (Cumulative (Running) Sums)

                                                      bull MAVG

                                                      bull MSUM

                                                      bull MDIFF

                                                      bull Voir Teradata + loin

                                                      98

                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                      99

                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                      Entiers est une table aux avec la colonne de12hellip10

                                                      100

                                                      Seacuteries financiegraveres

                                                      capital taux nval apregraves n ans

                                                      taux1val1 apregraves n ans

                                                      GainAbs GainRel

                                                      100 005 1 105 006 106 1 1

                                                      100 005 2 110 006 112 2 2

                                                      100 005 3 115 006 119 4 4

                                                      100 005 4 121 006 126 5 5

                                                      100 005 5 127 006 133 6 6

                                                      100 005 6 134 006 141 7 7

                                                      100 005 7 140 006 150 10 10

                                                      100 005 8 147 006 159 12 12

                                                      100 005 9 155 006 168 13 13

                                                      100 005 10 162 006 179 17 17

                                                      100 005 11 171 006 189 18 18

                                                      100 005 12 179 006 201 22 22

                                                      100 005 13 188 006 213 25 25

                                                      100 005 14 197 006 226 29 29

                                                      100 005 15 207 006 239 32 32

                                                      100 005 16 218 006 254 36 36

                                                      100 005 17 229 006 269 40 40

                                                      100 005 18 240 006 285 45 45

                                                      100 005 19 252 006 302 50 50

                                                      100 005 20 265 006 320 55 55

                                                      101

                                                      Seacuteries financiegraveres

                                                      102

                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                      financiers de la table Produits

                                                      bull Dans la limite L de la somme donneacutee

                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                      bull En ordre descendant de prix

                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                      bull Plusieurs actionshellip

                                                      103

                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                      P prix

                                                      p3 200

                                                      p1 200

                                                      p2 400

                                                      p3 200

                                                      p4 100

                                                      p6 100

                                                      p5 300

                                                      p8 300

                                                      p7 400

                                                      p10 200

                                                      p12 300

                                                      p13 300

                                                      104

                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                      ORDER BY 4 desc 8 123

                                                      105

                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                      106

                                                      Creacuteation drsquoun Portefeuille Discussion

                                                      Creacuteation drsquoun Portefeuille Discussion

                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                      107

                                                      Creacuteation drsquoun Portefeuille Discussion

                                                      Creacuteation drsquoun Portefeuille Discussion

                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                      108

                                                      ROLLUP(DB2 amp SQL-Server)

                                                      ROLLUP(DB2 amp SQL-Server)

                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                      109

                                                      CUBE(DB2 amp SQL-Server)

                                                      CUBE(DB2 amp SQL-Server)

                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                      110

                                                      GROUPING SETS

                                                      On indique explicitement les groupesndash entre ()

                                                      le groupe () est constitueacute de toute la table

                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                      WHERE SP P = PP AND SP S = SS

                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                      HAVING tot-qty gt 100

                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                      111

                                                      Rollup Cube Grouping Setssous MsAccess

                                                      Il y en a pas On peut simuler ces manipulations en

                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                      Peut ecirctre laborieux pour le CUBE

                                                      112

                                                      ROLLUP

                                                      Remarquez le laquo null as cityraquo

                                                      113

                                                      ROLLUP

                                                      114

                                                      ROLLUP

                                                      Et le CUBE

                                                      Une solution pour l ambiguiumlteacute

                                                      de certains nuls

                                                      115

                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                      Wiley (publ)

                                                      116

                                                      Sous-Tables Parameacutetreacutees

                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                      117

                                                      Sous-Tables Parameacutetreacutees

                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                      118

                                                      Sous-Tables Parameacutetreacutees

                                                      119

                                                      Sous-Tables Parameacutetreacutees

                                                      120

                                                      Sous-Tables Parameacutetreacutees

                                                      121

                                                      Sous-Tables Parameacutetreacutees

                                                      122

                                                      Sous-Tables Parameacutetreacutees

                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                      123

                                                      Sous-Tables Parameacutetreacutees

                                                      Exeacutecution autonome

                                                      124

                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                      hellip

                                                      125

                                                      Liste de Choix Multibase

                                                      bull Requecircte Test-liste-de-choix mdb

                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                      126

                                                      Liste de Choix MultibaseReacutesultat

                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                      Tregraves bonne question agrave Microsoft

                                                      148

                                                      FIN

                                                      149

                                                      • SQL Avanceacute 2010
                                                      • Quoi amp Pourquoi
                                                      • Slide 3
                                                      • Synonymes
                                                      • Noms dattributs
                                                      • Slide 6
                                                      • Slide 7
                                                      • Slide 8
                                                      • Insertion dans une Vue
                                                      • Insertion dans une Vue (2)
                                                      • MAJ drsquoune Vue MsAccess
                                                      • MAJ drsquoune Vue MsAccess (2)
                                                      • Suppression dans une Vue MsAccess
                                                      • MsAccess Leacutegendes
                                                      • Expressions de valeur
                                                      • Expressions de valeur (2)
                                                      • Pour en savoir + sur les attributs dynamiques
                                                      • UNION et Noms Drsquoattributs
                                                      • UNION et ORDER BY
                                                      • ORDER BY et expressions de valeur
                                                      • ORDER BY et expressions de valeur (2)
                                                      • Ordre de prioriteacute dopeacuterations
                                                      • Preacutedicat TOP
                                                      • Preacutedicat TOP (2)
                                                      • Clause BETWEEN
                                                      • Limitations de NOT
                                                      • ANY et ALL
                                                      • Injection SQL
                                                      • Injection SQL (2)
                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                      • Tabulations Croiseacutees
                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                      • Tabulations Croiseacutees (2)
                                                      • Tabulations Croiseacutees (3)
                                                      • Tabulations Croiseacutees (4)
                                                      • Tabulations Croiseacutees (5)
                                                      • XOR
                                                      • IMP
                                                      • Sous-requecirctes
                                                      • Sous-requecirctes (2)
                                                      • Sous-requecirctes (3)
                                                      • Sous-requecirctes (4)
                                                      • Sous-requecirctes (5)
                                                      • Sous-requecirctes (6)
                                                      • Sous-requecirctes (7)
                                                      • Application aux Probabiliteacutes
                                                      • Clause FROM imbriqueacutee
                                                      • Clause FROM imbriqueacutee (2)
                                                      • Clause FROM imbriqueacutee (3)
                                                      • Clause FROM imbriqueacutee (4)
                                                      • Clause FROM imbriqueacutee (5)
                                                      • Clause FROM imbriqueacutee (6)
                                                      • Valeurs nulles
                                                      • Valeurs nulles (2)
                                                      • Valeurs nulles (3)
                                                      • Valeurs nulles (4)
                                                      • Fonctions Scalaires DateTemps
                                                      • Fonctions Scalaires DateTemps (2)
                                                      • Fonctions Scalaires DateTemps (3)
                                                      • Fonctions Scalaires DateTemps (4)
                                                      • Fonctions Scalaires DateTemps (5)
                                                      • Fonction Scalaire RND
                                                      • Fonction Scalaire RND (2)
                                                      • Fonctions Financiegraveres
                                                      • Fonctions Financiegraveres (2)
                                                      • Fonction DDB
                                                      • Fonction DDB (2)
                                                      • Fonction PMT
                                                      • Fonction PMT (2)
                                                      • Placement agrave taux variable
                                                      • GROUP BY
                                                      • LIST Function
                                                      • LIST Function (2)
                                                      • GROUP BY avec WHERE
                                                      • GROUP BY (2)
                                                      • GROUP BY avec HAVING
                                                      • T-GROUP BY
                                                      • T-GROUP BY (2)
                                                      • T-GROUP BY (3)
                                                      • T-GROUP BY (4)
                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                      • Rangs Denses (Dense Ranking)
                                                      • Rangs Denses Graphique MsAccess
                                                      • Distribution
                                                      • Reacutesultat
                                                      • Distribution Cumulative
                                                      • Reacutesultat (2)
                                                      • Cateacutegorisation
                                                      • Cateacutegorisation (2)
                                                      • Cateacutegorisation (3)
                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                      • UNION Preacutediction de Valeurs Inconnues
                                                      • Tendance
                                                      • Moyenne Glissante
                                                      • Moyenne Glissante (2)
                                                      • Moyenne Glissante (3)
                                                      • Seacuteries financiegraveres
                                                      • Seacuteries financiegraveres (2)
                                                      • Seacuteries financiegraveres (3)
                                                      • Seacuteries financiegraveres (4)
                                                      • Creacuteation drsquoun Portefeuille
                                                      • Creacuteation drsquoun Portefeuille (2)
                                                      • Creacuteation drsquoun Portefeuille (3)
                                                      • Creacuteation drsquoun Portefeuille (4)
                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                      • ROLLUP (DB2 amp SQL-Server)
                                                      • CUBE (DB2 amp SQL-Server)
                                                      • GROUPING SETS
                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                      • Slide 112
                                                      • Slide 113
                                                      • Slide 114
                                                      • Autres Opeacuterations Utiles
                                                      • Sous-Tables Parameacutetreacutees
                                                      • Sous-Tables Parameacutetreacutees (2)
                                                      • Sous-Tables Parameacutetreacutees (3)
                                                      • Sous-Tables Parameacutetreacutees (4)
                                                      • Sous-Tables Parameacutetreacutees (5)
                                                      • Sous-Tables Parameacutetreacutees (6)
                                                      • Sous-Tables Parameacutetreacutees (7)
                                                      • Sous-Tables Parameacutetreacutees (8)
                                                      • Liste de Choix Multibase
                                                      • Liste de Choix Multibase (2)
                                                      • Liste de Choix Multibase Reacutesultat
                                                      • FIN
                                                      • Slide 149

                                                        28

                                                        Injection SQL On ajoute en fraude agrave une requecircte a priori en

                                                        restriction une condition qui annule cette restriction

                                                        Gros deacutegacircts sur le WEB notammentSELECT

                                                        FROM S

                                                        WHERE city=london Or True

                                                        SQL Injection

                                                        S SName Status City

                                                        s1 smith Paris

                                                        s2 Jones 100 london

                                                        s3 Blake 30 Paris

                                                        s4 Clark 10 london

                                                        s5 Adams 30 Athens

                                                        29

                                                        Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                                        True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                                        SELECT

                                                        FROM S

                                                        WHERE status= 100 Or 200

                                                        SELECT

                                                        FROM S

                                                        WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                                        SELECT

                                                        FROM S

                                                        WHERE city=london Or 100

                                                        30

                                                        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                        Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                        BY et les valeurs individuelles en mecircme temps

                                                        ndash Impossible avec SQL standard

                                                        31

                                                        S Total Qty p1 p2 p3 p4 p5 p6

                                                        s1 1300 300 200 400 200 100 100

                                                        s2 700 300 400

                                                        s3 200 200

                                                        s4 900 200 300 400

                                                        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                        Tabulations Croiseacutees

                                                        32

                                                        Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                        Transforment les valeurs dattributs en attributsndash Par exemple

                                                        les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                        les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                        33

                                                        S Total Qty p1 p2 p3 p4 p5 p6

                                                        s1 1300 300 200 400 200 100 100

                                                        s2 700 300 400

                                                        s3 200 200

                                                        s4 900 200 300 400

                                                        Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                        Tabulations Croiseacutees

                                                        34

                                                        TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                        Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                        Tabulations Croiseacutees

                                                        Nouvellescolonnes

                                                        35

                                                        La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                        On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                        Tabulations Croiseacutees

                                                        36

                                                        On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                        Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                        On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                        Mais cette clause naffecte pas les calculs des agreacutegats

                                                        Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                        Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                        Tabulations Croiseacutees

                                                        37

                                                        XORSELECT S[S] SStatus SCity

                                                        FROM S

                                                        WHERE Status=10 Xor city=paris

                                                        bull A noter le traitement du nul dans City

                                                        38

                                                        IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                        bull A noter le traitement du nul dans City

                                                        39

                                                        Sous-requecirctes

                                                        A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                        clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                        rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                        sous-requecircte

                                                        SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                        40

                                                        Sous-requecirctes

                                                        Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                        laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                        vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                        plus grande

                                                        41

                                                        Sous-requecirctes

                                                        Skylinendash Tout objet non-domineacute (cacheacute

                                                        totalement) par un autre

                                                        SELECT X[s] X[p] qty delay

                                                        FROM SP X

                                                        where not exists

                                                        (select from SP as Y

                                                        where (Yqty gt= XQty and YDelay lt XDelay or

                                                        Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                        order by X[p]

                                                        42

                                                        Sous-requecirctes Reacutesultat

                                                        s p qty delay

                                                        s1 p1 300 15

                                                        s4 p1 200 13

                                                        s3 p2 400 15

                                                        s2 p2 300 12

                                                        s1 p3 400 17

                                                        s4 p4 300 11

                                                        s4 p5 400 7

                                                        s1 p6 100 8

                                                        s p qty Delay

                                                        s1 p1 300 15

                                                        s1 p2 200 12

                                                        s1 p3 400 17

                                                        s1 p4 200 11

                                                        s1 p5 100 7

                                                        s1 p6 100 8

                                                        s2 p2 300 12

                                                        s3 p2 400 15

                                                        s4 p1 200 13

                                                        s4 p2 200 15

                                                        s4 p4 300 11

                                                        s4 p5 400 7

                                                        S

                                                        43

                                                        Sous-requecirctes

                                                        On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                        SELECT Count() AS TotalQty

                                                        FROM (select distinct qty from sp)

                                                        On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                        SELECT SP[s] SP[p] qty

                                                        (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                        round(qtyTotalQty 3) AS Fraction

                                                        FROM SP order by [s]

                                                        44

                                                        Sous-requecirctes

                                                        s p qty TotalQty Fraction

                                                        s1 p1 300 1300 0231

                                                        s1 p6 100 1300 0077

                                                        s1 p5 100 1300 0077

                                                        s1 p4 200 1300 0154

                                                        s1 p3 400 1300 0308

                                                        s1 p2 200 1300 0154

                                                        s2 p2 300 300 1

                                                        s3 p2 400 400 1

                                                        s4 p5 400 1100 0364

                                                        s4 p4 300 1100 0273

                                                        s4 p2 200 1100 0182

                                                        bull ReacutesultatSP

                                                        s p qty

                                                        s1 p1 300

                                                        s1 p2 200

                                                        s1 p3 400

                                                        s1 p4 200

                                                        s1 p5 100

                                                        s1 p6 100

                                                        s2 p2 300

                                                        s3 p2 400

                                                        s4 p1 200

                                                        s4 p2 200

                                                        s4 p4 300

                                                        s4 p5 400

                                                        45

                                                        Sous-requecirctesbull En Mode Graphique

                                                        s p qtyTotalQty

                                                        Fraction

                                                        s1 p1 300 1300 0231

                                                        s1 p6 100 1300 0077

                                                        s1 p5 100 1300 0077

                                                        s1 p4 200 1300 0154

                                                        s1 p3 400 1300 0308

                                                        s1 p2 200 1300 0154

                                                        s2 p2 300 300 1

                                                        s3 p2 400 400 1

                                                        s4 p5 400 1100 0364

                                                        s4 p4 300 1100 0273

                                                        s4 p2 200 1100 0182

                                                        46

                                                        Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                        SELECT (select count(qty) from SP

                                                        where qty gt= [seuil svp ]) count() as reacutesultat

                                                        FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                        probabiliteacute conditionnelle

                                                        47

                                                        Clause FROM imbriqueacutee

                                                        Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                        Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                        Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                        Agrave essayer

                                                        48

                                                        Clause FROM imbriqueacuteePossibiliteacutes

                                                        ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                        ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                        MsAccess

                                                        ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                        Mais la reacutefeacuterence au nom de la requecircte OK

                                                        49

                                                        Clause FROM imbriqueacutee

                                                        SELECT sum(weight) AS [poids-total]

                                                        FROM (SELECT weight pcity FROM P WHERE City like l

                                                        UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                        50

                                                        Clause FROM imbriqueacutee

                                                        select avg(moy1) as [moyenne-des-moyennes]

                                                        FROM

                                                        (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                        UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                        51

                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                        select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                        52

                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                        totaux partiels et total geacuteneacuteral

                                                        total_Id TotalQty

                                                        s1 1300

                                                        s2 300

                                                        s3 400

                                                        s4 400

                                                        total Geacuteneacuteral

                                                        2400

                                                        53

                                                        Valeurs nulles

                                                        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                        Non WHERE HAVING GROUP BY (rel 1)

                                                        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                        MsAccess Oui DISTINCT Autres clauses

                                                        54

                                                        Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                        1 x gt y est vrai ou faux

                                                        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                        SELECT FROM S WHERE CITY =Paris

                                                        UNION

                                                        SELECT FROM S WHERE NOT CITY = Paris

                                                        est toujours pourquoi faire simpleSELECT FROM S

                                                        si on peut faire compliqueacute

                                                        55

                                                        Valeurs nullesValeurs nulles

                                                        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                        56

                                                        Valeurs nulles

                                                        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                        LOG (nul) -gt Error A voir cas par cas

                                                        57

                                                        Fonctions Scalaires DateTemps

                                                        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                        58

                                                        Fonctions Scalaires DateTemps

                                                        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                        weekday(day(now())-1) AS [day]FROM S

                                                        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                        59

                                                        Fonctions Scalaires DateTemps

                                                        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                        Interval Explanation

                                                        Yyyy Year

                                                        q Quarter

                                                        m Month

                                                        y Day of year

                                                        d Day

                                                        w Weekday

                                                        ww Week

                                                        h Hour

                                                        n Minute

                                                        s Second

                                                        60

                                                        Fonctions Scalaires DateTemps

                                                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                        Test DateDiff

                                                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                        61

                                                        Fonctions Scalaires DateTemps

                                                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                        Liste tous les tuples ougrave DateV est de Janvier 2009

                                                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                        62

                                                        Fonction Scalaire RND

                                                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                        FROM SPORDER BY rnd(qty) DESC

                                                        echantillon s rank

                                                        s1 502628087997437E-02

                                                        s4 0518015921115875

                                                        s3 075702953338623

                                                        63

                                                        Fonction Scalaire RND

                                                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                        FROM SPORDER BY rnd(qty) DESC

                                                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                        Votre commentaire ici

                                                        64

                                                        Fonctions Financiegraveres

                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                        65

                                                        Fonctions Financiegraveres

                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                        66

                                                        Fonction DDB

                                                        insert into DDB (cost salvage life factor amortiss period)

                                                        select 100 as cost 70 as salvage 5 as life 1 as factor

                                                        DDB(cost salvage life period factor) as amortiss period

                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                        67

                                                        Fonction DDB

                                                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                        68

                                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                        nombres neacutegatifs

                                                        Fonction PMT

                                                        69

                                                        Fonction PMT

                                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                        Fonction PMT calcul dannuiteacute demprunt

                                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                        preacutesentevaleur_payeacutee surprime

                                                        -16049 005 20 200000 -320980 -120980

                                                        70

                                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                        Et les nuls que log ne supporte pas

                                                        Anneacutee relative

                                                        Taux

                                                        1 4

                                                        2 4

                                                        3 3

                                                        4 5

                                                        5 5

                                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                                        71

                                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                        est eacutequivalente agrave

                                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                        WHERE XP = SPP) FROM SP

                                                        Testez

                                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                        72

                                                        LIST Function La requecircte

                                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                        Comme les tabulations croiseacutees

                                                        ndash Mais en + simple

                                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                        ndash En mono attribut (2004)

                                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                        sous-formulaires

                                                        73

                                                        LIST Function

                                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                        74

                                                        GROUP BY avec WHERE

                                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                        75

                                                        GROUP BY

                                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                        Pourquoi

                                                        76

                                                        GROUP BY avec HAVING

                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                        77

                                                        T-GROUP BY Proposeacute pour SQL

                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                        Le rocircle de -join par rapport agrave equi-join

                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                        78

                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                        FROM SP Vrai ou Faux

                                                        79

                                                        T-GROUP BY

                                                        Reacutesultat

                                                        part avg_qty_other_parts part_avg_qty

                                                        p1 250 300

                                                        p2 262 250

                                                        p3 245 400

                                                        p4 260 250

                                                        p5 260 250

                                                        p6 272 100

                                                        80

                                                        T-GROUP BY

                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                        81

                                                        Rangs Non-Denses(Non Dense Ranking)

                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                        s p qtyND-rank

                                                        s4 p5 400 1

                                                        s3 p2 400 1

                                                        s1 p3 400 1

                                                        s4 p4 300 4

                                                        s2 p2 300 4

                                                        s1 p1 300 4

                                                        s4 p2 200 7

                                                        s1 p4 200 7

                                                        s1 p2 200 7

                                                        s4 p1 200 7

                                                        s1 p6 100 11

                                                        s1 p5 100 11

                                                        82

                                                        Rangs Non-Denses(Graphique MsAccess)

                                                        s p qty ND-rank

                                                        s4 p5 400 1

                                                        s3 p2 400 1

                                                        s1 p3 400 1

                                                        s4 p4 300 4

                                                        s2 p2 300 4

                                                        s1 p1 300 4

                                                        s4 p2 200 7

                                                        s1 p4 200 7

                                                        s1 p2 200 7

                                                        s4 p1 200 7

                                                        s1 p6 100 11

                                                        s1 p5 100 11

                                                        83

                                                        Rangs Denses(Dense Ranking)

                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                        s p qtyD-rank

                                                        s1 p3 400 1

                                                        s3 p2 400 1

                                                        s4 p5 400 1

                                                        s1 p1 300 2

                                                        s2 p2 300 2

                                                        s4 p4 300 2

                                                        s1 p4 200 3

                                                        s1 p2 200 3

                                                        s4 p2 200 3

                                                        s4 p1 200 3

                                                        s1 p6 100 4

                                                        s1 p5 100 4

                                                        84

                                                        Rangs DensesGraphique MsAccess

                                                        s p qty D-rank

                                                        s1 p3 400 1

                                                        s3 p2 400 1

                                                        s4 p5 400 1

                                                        s1 p1 300 2

                                                        s2 p2 300 2

                                                        s4 p4 300 2

                                                        s1 p4 200 3

                                                        s1 p2 200 3

                                                        s4 p2 200 3

                                                        s4 p1 200 3

                                                        s1 p6 100 4

                                                        s1 p5 100 4

                                                        85

                                                        Distribution

                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                        86

                                                        Reacutesultat

                                                        s Distribution

                                                        s1 0419

                                                        s2 0097

                                                        s3 0129

                                                        s4 0355

                                                        87

                                                        Distribution Cumulative

                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                        FROM SP

                                                        ORDER BY SP[s]

                                                        88

                                                        Reacutesultat

                                                        sDistribution Cumuleacutee

                                                        s1 0419

                                                        s2 0516

                                                        s3 0645

                                                        s4 1

                                                        89

                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                        90

                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                        FROM S

                                                        GROUP BY S[S] SSName SStatus SCity

                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                        s1 Smith Paris good good

                                                        s2 Jones 100 london good VGood

                                                        s3 Blake 30 Paris good good

                                                        s4 Clark 10 london OK OK

                                                        s5 Adams 30 Athens good good

                                                        bull Notez le traitement du null

                                                        91

                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                        SELECT Ppname weight Very Heavy as Warning

                                                        FROM P where weight gt 13

                                                        union

                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                        UNION

                                                        select Ppname weight Light as warn from p where weight lt 10

                                                        ORDER BY warning DESC weight DESC

                                                        pname weight Warning

                                                        cam 19 Very Heavy

                                                        cog 19 Very Heavy

                                                        bolt 17 Very Heavy

                                                        nut 14 Very Heavy

                                                        screw 14 Very Heavy

                                                        nut 14 Quite Heavy

                                                        screw 14 Quite Heavy

                                                        screw 12 Quite Heavy

                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                        92

                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                        On considegravere AVG(Qty1) pour Qty

                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                        SP

                                                        s p qtyQty1

                                                        s1 p1 300 400

                                                        s1 p2 200

                                                        s1 p3 400 600

                                                        s1 p4 200 300

                                                        s1 p5 100

                                                        s1 p6 100 200

                                                        s2 p2 300 500

                                                        s3 p2 400

                                                        s4 p1 200 100

                                                        s4 p2 200

                                                        s4 p4 300

                                                        s4 p5 400

                                                        93

                                                        UNIONPreacutediction de Valeurs Inconnues

                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                        SP

                                                        s p qtyQty1

                                                        s1 p1 300 400

                                                        s1 p2 200

                                                        s1 p3 400 600

                                                        s1 p4 200 300

                                                        s1 p5 100

                                                        s1 p6 100 200

                                                        s2 p2 300 500

                                                        s3 p2 400

                                                        s4 p1 200 100

                                                        s4 p2 200

                                                        s4 p4 300

                                                        s4 p5 400

                                                        qty for partpredicted or

                                                        unknown Qty1

                                                        100 p5

                                                        100 predicted value 200

                                                        200 p2

                                                        200 predicted value 200

                                                        300 p4

                                                        300 predicted value 450

                                                        400 p2

                                                        400 p5

                                                        400 predicted value 600

                                                        94

                                                        Tendance

                                                        qty Qty1

                                                        100 200

                                                        200 300

                                                        300 400

                                                        400 600

                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                        Graph 3D avec Qty en abscisses

                                                        95

                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                        30102008 120 27102008 4

                                                        25102008 131 22102008 4

                                                        23102008 127 20102008 4

                                                        17102008 269 14102008 4

                                                        15102008 60 12102008 4

                                                        11102008 295 08102008 4

                                                        09102008 340 06102008 4

                                                        08102008 324 05102008 4

                                                        06102008 315 03102008 4

                                                        96

                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                        Graphique avec une info-bulle

                                                        97

                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                        glissantes

                                                        bull CSUM (Cumulative (Running) Sums)

                                                        bull MAVG

                                                        bull MSUM

                                                        bull MDIFF

                                                        bull Voir Teradata + loin

                                                        98

                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                        99

                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                        Entiers est une table aux avec la colonne de12hellip10

                                                        100

                                                        Seacuteries financiegraveres

                                                        capital taux nval apregraves n ans

                                                        taux1val1 apregraves n ans

                                                        GainAbs GainRel

                                                        100 005 1 105 006 106 1 1

                                                        100 005 2 110 006 112 2 2

                                                        100 005 3 115 006 119 4 4

                                                        100 005 4 121 006 126 5 5

                                                        100 005 5 127 006 133 6 6

                                                        100 005 6 134 006 141 7 7

                                                        100 005 7 140 006 150 10 10

                                                        100 005 8 147 006 159 12 12

                                                        100 005 9 155 006 168 13 13

                                                        100 005 10 162 006 179 17 17

                                                        100 005 11 171 006 189 18 18

                                                        100 005 12 179 006 201 22 22

                                                        100 005 13 188 006 213 25 25

                                                        100 005 14 197 006 226 29 29

                                                        100 005 15 207 006 239 32 32

                                                        100 005 16 218 006 254 36 36

                                                        100 005 17 229 006 269 40 40

                                                        100 005 18 240 006 285 45 45

                                                        100 005 19 252 006 302 50 50

                                                        100 005 20 265 006 320 55 55

                                                        101

                                                        Seacuteries financiegraveres

                                                        102

                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                        financiers de la table Produits

                                                        bull Dans la limite L de la somme donneacutee

                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                        bull En ordre descendant de prix

                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                        bull Plusieurs actionshellip

                                                        103

                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                        P prix

                                                        p3 200

                                                        p1 200

                                                        p2 400

                                                        p3 200

                                                        p4 100

                                                        p6 100

                                                        p5 300

                                                        p8 300

                                                        p7 400

                                                        p10 200

                                                        p12 300

                                                        p13 300

                                                        104

                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                        ORDER BY 4 desc 8 123

                                                        105

                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                        106

                                                        Creacuteation drsquoun Portefeuille Discussion

                                                        Creacuteation drsquoun Portefeuille Discussion

                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                        107

                                                        Creacuteation drsquoun Portefeuille Discussion

                                                        Creacuteation drsquoun Portefeuille Discussion

                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                        108

                                                        ROLLUP(DB2 amp SQL-Server)

                                                        ROLLUP(DB2 amp SQL-Server)

                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                        109

                                                        CUBE(DB2 amp SQL-Server)

                                                        CUBE(DB2 amp SQL-Server)

                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                        110

                                                        GROUPING SETS

                                                        On indique explicitement les groupesndash entre ()

                                                        le groupe () est constitueacute de toute la table

                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                        WHERE SP P = PP AND SP S = SS

                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                        HAVING tot-qty gt 100

                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                        111

                                                        Rollup Cube Grouping Setssous MsAccess

                                                        Il y en a pas On peut simuler ces manipulations en

                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                        Peut ecirctre laborieux pour le CUBE

                                                        112

                                                        ROLLUP

                                                        Remarquez le laquo null as cityraquo

                                                        113

                                                        ROLLUP

                                                        114

                                                        ROLLUP

                                                        Et le CUBE

                                                        Une solution pour l ambiguiumlteacute

                                                        de certains nuls

                                                        115

                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                        Wiley (publ)

                                                        116

                                                        Sous-Tables Parameacutetreacutees

                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                        117

                                                        Sous-Tables Parameacutetreacutees

                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                        118

                                                        Sous-Tables Parameacutetreacutees

                                                        119

                                                        Sous-Tables Parameacutetreacutees

                                                        120

                                                        Sous-Tables Parameacutetreacutees

                                                        121

                                                        Sous-Tables Parameacutetreacutees

                                                        122

                                                        Sous-Tables Parameacutetreacutees

                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                        123

                                                        Sous-Tables Parameacutetreacutees

                                                        Exeacutecution autonome

                                                        124

                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                        hellip

                                                        125

                                                        Liste de Choix Multibase

                                                        bull Requecircte Test-liste-de-choix mdb

                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                        126

                                                        Liste de Choix MultibaseReacutesultat

                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                        Tregraves bonne question agrave Microsoft

                                                        148

                                                        FIN

                                                        149

                                                        • SQL Avanceacute 2010
                                                        • Quoi amp Pourquoi
                                                        • Slide 3
                                                        • Synonymes
                                                        • Noms dattributs
                                                        • Slide 6
                                                        • Slide 7
                                                        • Slide 8
                                                        • Insertion dans une Vue
                                                        • Insertion dans une Vue (2)
                                                        • MAJ drsquoune Vue MsAccess
                                                        • MAJ drsquoune Vue MsAccess (2)
                                                        • Suppression dans une Vue MsAccess
                                                        • MsAccess Leacutegendes
                                                        • Expressions de valeur
                                                        • Expressions de valeur (2)
                                                        • Pour en savoir + sur les attributs dynamiques
                                                        • UNION et Noms Drsquoattributs
                                                        • UNION et ORDER BY
                                                        • ORDER BY et expressions de valeur
                                                        • ORDER BY et expressions de valeur (2)
                                                        • Ordre de prioriteacute dopeacuterations
                                                        • Preacutedicat TOP
                                                        • Preacutedicat TOP (2)
                                                        • Clause BETWEEN
                                                        • Limitations de NOT
                                                        • ANY et ALL
                                                        • Injection SQL
                                                        • Injection SQL (2)
                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                        • Tabulations Croiseacutees
                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                        • Tabulations Croiseacutees (2)
                                                        • Tabulations Croiseacutees (3)
                                                        • Tabulations Croiseacutees (4)
                                                        • Tabulations Croiseacutees (5)
                                                        • XOR
                                                        • IMP
                                                        • Sous-requecirctes
                                                        • Sous-requecirctes (2)
                                                        • Sous-requecirctes (3)
                                                        • Sous-requecirctes (4)
                                                        • Sous-requecirctes (5)
                                                        • Sous-requecirctes (6)
                                                        • Sous-requecirctes (7)
                                                        • Application aux Probabiliteacutes
                                                        • Clause FROM imbriqueacutee
                                                        • Clause FROM imbriqueacutee (2)
                                                        • Clause FROM imbriqueacutee (3)
                                                        • Clause FROM imbriqueacutee (4)
                                                        • Clause FROM imbriqueacutee (5)
                                                        • Clause FROM imbriqueacutee (6)
                                                        • Valeurs nulles
                                                        • Valeurs nulles (2)
                                                        • Valeurs nulles (3)
                                                        • Valeurs nulles (4)
                                                        • Fonctions Scalaires DateTemps
                                                        • Fonctions Scalaires DateTemps (2)
                                                        • Fonctions Scalaires DateTemps (3)
                                                        • Fonctions Scalaires DateTemps (4)
                                                        • Fonctions Scalaires DateTemps (5)
                                                        • Fonction Scalaire RND
                                                        • Fonction Scalaire RND (2)
                                                        • Fonctions Financiegraveres
                                                        • Fonctions Financiegraveres (2)
                                                        • Fonction DDB
                                                        • Fonction DDB (2)
                                                        • Fonction PMT
                                                        • Fonction PMT (2)
                                                        • Placement agrave taux variable
                                                        • GROUP BY
                                                        • LIST Function
                                                        • LIST Function (2)
                                                        • GROUP BY avec WHERE
                                                        • GROUP BY (2)
                                                        • GROUP BY avec HAVING
                                                        • T-GROUP BY
                                                        • T-GROUP BY (2)
                                                        • T-GROUP BY (3)
                                                        • T-GROUP BY (4)
                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                        • Rangs Denses (Dense Ranking)
                                                        • Rangs Denses Graphique MsAccess
                                                        • Distribution
                                                        • Reacutesultat
                                                        • Distribution Cumulative
                                                        • Reacutesultat (2)
                                                        • Cateacutegorisation
                                                        • Cateacutegorisation (2)
                                                        • Cateacutegorisation (3)
                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                        • UNION Preacutediction de Valeurs Inconnues
                                                        • Tendance
                                                        • Moyenne Glissante
                                                        • Moyenne Glissante (2)
                                                        • Moyenne Glissante (3)
                                                        • Seacuteries financiegraveres
                                                        • Seacuteries financiegraveres (2)
                                                        • Seacuteries financiegraveres (3)
                                                        • Seacuteries financiegraveres (4)
                                                        • Creacuteation drsquoun Portefeuille
                                                        • Creacuteation drsquoun Portefeuille (2)
                                                        • Creacuteation drsquoun Portefeuille (3)
                                                        • Creacuteation drsquoun Portefeuille (4)
                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                        • ROLLUP (DB2 amp SQL-Server)
                                                        • CUBE (DB2 amp SQL-Server)
                                                        • GROUPING SETS
                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                        • Slide 112
                                                        • Slide 113
                                                        • Slide 114
                                                        • Autres Opeacuterations Utiles
                                                        • Sous-Tables Parameacutetreacutees
                                                        • Sous-Tables Parameacutetreacutees (2)
                                                        • Sous-Tables Parameacutetreacutees (3)
                                                        • Sous-Tables Parameacutetreacutees (4)
                                                        • Sous-Tables Parameacutetreacutees (5)
                                                        • Sous-Tables Parameacutetreacutees (6)
                                                        • Sous-Tables Parameacutetreacutees (7)
                                                        • Sous-Tables Parameacutetreacutees (8)
                                                        • Liste de Choix Multibase
                                                        • Liste de Choix Multibase (2)
                                                        • Liste de Choix Multibase Reacutesultat
                                                        • FIN
                                                        • Slide 149

                                                          29

                                                          Injection SQL La clause ajouteacutee deacutesigne une colonne virtuelle dite

                                                          True dont le preacutedicat eacutevalue toujours agrave vrai Quelle est la diffeacuterence entre les deux requecirctes

                                                          SELECT

                                                          FROM S

                                                          WHERE status= 100 Or 200

                                                          SELECT

                                                          FROM S

                                                          WHERE status= 100 Or status = 200 Pourrait-on faire lrsquoinjection par ce qui suit

                                                          SELECT

                                                          FROM S

                                                          WHERE city=london Or 100

                                                          30

                                                          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                          Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                          BY et les valeurs individuelles en mecircme temps

                                                          ndash Impossible avec SQL standard

                                                          31

                                                          S Total Qty p1 p2 p3 p4 p5 p6

                                                          s1 1300 300 200 400 200 100 100

                                                          s2 700 300 400

                                                          s3 200 200

                                                          s4 900 200 300 400

                                                          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                          Tabulations Croiseacutees

                                                          32

                                                          Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                          Transforment les valeurs dattributs en attributsndash Par exemple

                                                          les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                          les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                          33

                                                          S Total Qty p1 p2 p3 p4 p5 p6

                                                          s1 1300 300 200 400 200 100 100

                                                          s2 700 300 400

                                                          s3 200 200

                                                          s4 900 200 300 400

                                                          Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                          Tabulations Croiseacutees

                                                          34

                                                          TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                          Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                          Tabulations Croiseacutees

                                                          Nouvellescolonnes

                                                          35

                                                          La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                          On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                          Tabulations Croiseacutees

                                                          36

                                                          On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                          Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                          On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                          Mais cette clause naffecte pas les calculs des agreacutegats

                                                          Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                          Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                          Tabulations Croiseacutees

                                                          37

                                                          XORSELECT S[S] SStatus SCity

                                                          FROM S

                                                          WHERE Status=10 Xor city=paris

                                                          bull A noter le traitement du nul dans City

                                                          38

                                                          IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                          bull A noter le traitement du nul dans City

                                                          39

                                                          Sous-requecirctes

                                                          A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                          clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                          rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                          sous-requecircte

                                                          SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                          40

                                                          Sous-requecirctes

                                                          Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                          laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                          vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                          plus grande

                                                          41

                                                          Sous-requecirctes

                                                          Skylinendash Tout objet non-domineacute (cacheacute

                                                          totalement) par un autre

                                                          SELECT X[s] X[p] qty delay

                                                          FROM SP X

                                                          where not exists

                                                          (select from SP as Y

                                                          where (Yqty gt= XQty and YDelay lt XDelay or

                                                          Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                          order by X[p]

                                                          42

                                                          Sous-requecirctes Reacutesultat

                                                          s p qty delay

                                                          s1 p1 300 15

                                                          s4 p1 200 13

                                                          s3 p2 400 15

                                                          s2 p2 300 12

                                                          s1 p3 400 17

                                                          s4 p4 300 11

                                                          s4 p5 400 7

                                                          s1 p6 100 8

                                                          s p qty Delay

                                                          s1 p1 300 15

                                                          s1 p2 200 12

                                                          s1 p3 400 17

                                                          s1 p4 200 11

                                                          s1 p5 100 7

                                                          s1 p6 100 8

                                                          s2 p2 300 12

                                                          s3 p2 400 15

                                                          s4 p1 200 13

                                                          s4 p2 200 15

                                                          s4 p4 300 11

                                                          s4 p5 400 7

                                                          S

                                                          43

                                                          Sous-requecirctes

                                                          On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                          SELECT Count() AS TotalQty

                                                          FROM (select distinct qty from sp)

                                                          On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                          SELECT SP[s] SP[p] qty

                                                          (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                          round(qtyTotalQty 3) AS Fraction

                                                          FROM SP order by [s]

                                                          44

                                                          Sous-requecirctes

                                                          s p qty TotalQty Fraction

                                                          s1 p1 300 1300 0231

                                                          s1 p6 100 1300 0077

                                                          s1 p5 100 1300 0077

                                                          s1 p4 200 1300 0154

                                                          s1 p3 400 1300 0308

                                                          s1 p2 200 1300 0154

                                                          s2 p2 300 300 1

                                                          s3 p2 400 400 1

                                                          s4 p5 400 1100 0364

                                                          s4 p4 300 1100 0273

                                                          s4 p2 200 1100 0182

                                                          bull ReacutesultatSP

                                                          s p qty

                                                          s1 p1 300

                                                          s1 p2 200

                                                          s1 p3 400

                                                          s1 p4 200

                                                          s1 p5 100

                                                          s1 p6 100

                                                          s2 p2 300

                                                          s3 p2 400

                                                          s4 p1 200

                                                          s4 p2 200

                                                          s4 p4 300

                                                          s4 p5 400

                                                          45

                                                          Sous-requecirctesbull En Mode Graphique

                                                          s p qtyTotalQty

                                                          Fraction

                                                          s1 p1 300 1300 0231

                                                          s1 p6 100 1300 0077

                                                          s1 p5 100 1300 0077

                                                          s1 p4 200 1300 0154

                                                          s1 p3 400 1300 0308

                                                          s1 p2 200 1300 0154

                                                          s2 p2 300 300 1

                                                          s3 p2 400 400 1

                                                          s4 p5 400 1100 0364

                                                          s4 p4 300 1100 0273

                                                          s4 p2 200 1100 0182

                                                          46

                                                          Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                          SELECT (select count(qty) from SP

                                                          where qty gt= [seuil svp ]) count() as reacutesultat

                                                          FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                          probabiliteacute conditionnelle

                                                          47

                                                          Clause FROM imbriqueacutee

                                                          Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                          Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                          Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                          Agrave essayer

                                                          48

                                                          Clause FROM imbriqueacuteePossibiliteacutes

                                                          ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                          ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                          MsAccess

                                                          ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                          Mais la reacutefeacuterence au nom de la requecircte OK

                                                          49

                                                          Clause FROM imbriqueacutee

                                                          SELECT sum(weight) AS [poids-total]

                                                          FROM (SELECT weight pcity FROM P WHERE City like l

                                                          UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                          50

                                                          Clause FROM imbriqueacutee

                                                          select avg(moy1) as [moyenne-des-moyennes]

                                                          FROM

                                                          (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                          UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                          51

                                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                          select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                          52

                                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                          totaux partiels et total geacuteneacuteral

                                                          total_Id TotalQty

                                                          s1 1300

                                                          s2 300

                                                          s3 400

                                                          s4 400

                                                          total Geacuteneacuteral

                                                          2400

                                                          53

                                                          Valeurs nulles

                                                          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                          Non WHERE HAVING GROUP BY (rel 1)

                                                          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                          MsAccess Oui DISTINCT Autres clauses

                                                          54

                                                          Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                          1 x gt y est vrai ou faux

                                                          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                          SELECT FROM S WHERE CITY =Paris

                                                          UNION

                                                          SELECT FROM S WHERE NOT CITY = Paris

                                                          est toujours pourquoi faire simpleSELECT FROM S

                                                          si on peut faire compliqueacute

                                                          55

                                                          Valeurs nullesValeurs nulles

                                                          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                          56

                                                          Valeurs nulles

                                                          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                          LOG (nul) -gt Error A voir cas par cas

                                                          57

                                                          Fonctions Scalaires DateTemps

                                                          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                          58

                                                          Fonctions Scalaires DateTemps

                                                          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                          weekday(day(now())-1) AS [day]FROM S

                                                          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                          59

                                                          Fonctions Scalaires DateTemps

                                                          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                          Interval Explanation

                                                          Yyyy Year

                                                          q Quarter

                                                          m Month

                                                          y Day of year

                                                          d Day

                                                          w Weekday

                                                          ww Week

                                                          h Hour

                                                          n Minute

                                                          s Second

                                                          60

                                                          Fonctions Scalaires DateTemps

                                                          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                          Test DateDiff

                                                          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                          61

                                                          Fonctions Scalaires DateTemps

                                                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                          Liste tous les tuples ougrave DateV est de Janvier 2009

                                                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                          62

                                                          Fonction Scalaire RND

                                                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                          FROM SPORDER BY rnd(qty) DESC

                                                          echantillon s rank

                                                          s1 502628087997437E-02

                                                          s4 0518015921115875

                                                          s3 075702953338623

                                                          63

                                                          Fonction Scalaire RND

                                                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                          FROM SPORDER BY rnd(qty) DESC

                                                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                          Votre commentaire ici

                                                          64

                                                          Fonctions Financiegraveres

                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                          65

                                                          Fonctions Financiegraveres

                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                          66

                                                          Fonction DDB

                                                          insert into DDB (cost salvage life factor amortiss period)

                                                          select 100 as cost 70 as salvage 5 as life 1 as factor

                                                          DDB(cost salvage life period factor) as amortiss period

                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                          67

                                                          Fonction DDB

                                                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                          68

                                                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                          nombres neacutegatifs

                                                          Fonction PMT

                                                          69

                                                          Fonction PMT

                                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                          Fonction PMT calcul dannuiteacute demprunt

                                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                          preacutesentevaleur_payeacutee surprime

                                                          -16049 005 20 200000 -320980 -120980

                                                          70

                                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                          Et les nuls que log ne supporte pas

                                                          Anneacutee relative

                                                          Taux

                                                          1 4

                                                          2 4

                                                          3 3

                                                          4 5

                                                          5 5

                                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                                          71

                                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                          est eacutequivalente agrave

                                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                          WHERE XP = SPP) FROM SP

                                                          Testez

                                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                          72

                                                          LIST Function La requecircte

                                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                          Comme les tabulations croiseacutees

                                                          ndash Mais en + simple

                                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                          ndash En mono attribut (2004)

                                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                          sous-formulaires

                                                          73

                                                          LIST Function

                                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                          74

                                                          GROUP BY avec WHERE

                                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                          75

                                                          GROUP BY

                                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                          Pourquoi

                                                          76

                                                          GROUP BY avec HAVING

                                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                          77

                                                          T-GROUP BY Proposeacute pour SQL

                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                          Le rocircle de -join par rapport agrave equi-join

                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                          78

                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                          FROM SP Vrai ou Faux

                                                          79

                                                          T-GROUP BY

                                                          Reacutesultat

                                                          part avg_qty_other_parts part_avg_qty

                                                          p1 250 300

                                                          p2 262 250

                                                          p3 245 400

                                                          p4 260 250

                                                          p5 260 250

                                                          p6 272 100

                                                          80

                                                          T-GROUP BY

                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                          81

                                                          Rangs Non-Denses(Non Dense Ranking)

                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                          s p qtyND-rank

                                                          s4 p5 400 1

                                                          s3 p2 400 1

                                                          s1 p3 400 1

                                                          s4 p4 300 4

                                                          s2 p2 300 4

                                                          s1 p1 300 4

                                                          s4 p2 200 7

                                                          s1 p4 200 7

                                                          s1 p2 200 7

                                                          s4 p1 200 7

                                                          s1 p6 100 11

                                                          s1 p5 100 11

                                                          82

                                                          Rangs Non-Denses(Graphique MsAccess)

                                                          s p qty ND-rank

                                                          s4 p5 400 1

                                                          s3 p2 400 1

                                                          s1 p3 400 1

                                                          s4 p4 300 4

                                                          s2 p2 300 4

                                                          s1 p1 300 4

                                                          s4 p2 200 7

                                                          s1 p4 200 7

                                                          s1 p2 200 7

                                                          s4 p1 200 7

                                                          s1 p6 100 11

                                                          s1 p5 100 11

                                                          83

                                                          Rangs Denses(Dense Ranking)

                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                          s p qtyD-rank

                                                          s1 p3 400 1

                                                          s3 p2 400 1

                                                          s4 p5 400 1

                                                          s1 p1 300 2

                                                          s2 p2 300 2

                                                          s4 p4 300 2

                                                          s1 p4 200 3

                                                          s1 p2 200 3

                                                          s4 p2 200 3

                                                          s4 p1 200 3

                                                          s1 p6 100 4

                                                          s1 p5 100 4

                                                          84

                                                          Rangs DensesGraphique MsAccess

                                                          s p qty D-rank

                                                          s1 p3 400 1

                                                          s3 p2 400 1

                                                          s4 p5 400 1

                                                          s1 p1 300 2

                                                          s2 p2 300 2

                                                          s4 p4 300 2

                                                          s1 p4 200 3

                                                          s1 p2 200 3

                                                          s4 p2 200 3

                                                          s4 p1 200 3

                                                          s1 p6 100 4

                                                          s1 p5 100 4

                                                          85

                                                          Distribution

                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                          86

                                                          Reacutesultat

                                                          s Distribution

                                                          s1 0419

                                                          s2 0097

                                                          s3 0129

                                                          s4 0355

                                                          87

                                                          Distribution Cumulative

                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                          FROM SP

                                                          ORDER BY SP[s]

                                                          88

                                                          Reacutesultat

                                                          sDistribution Cumuleacutee

                                                          s1 0419

                                                          s2 0516

                                                          s3 0645

                                                          s4 1

                                                          89

                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                          90

                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                          FROM S

                                                          GROUP BY S[S] SSName SStatus SCity

                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                          s1 Smith Paris good good

                                                          s2 Jones 100 london good VGood

                                                          s3 Blake 30 Paris good good

                                                          s4 Clark 10 london OK OK

                                                          s5 Adams 30 Athens good good

                                                          bull Notez le traitement du null

                                                          91

                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                          SELECT Ppname weight Very Heavy as Warning

                                                          FROM P where weight gt 13

                                                          union

                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                          UNION

                                                          select Ppname weight Light as warn from p where weight lt 10

                                                          ORDER BY warning DESC weight DESC

                                                          pname weight Warning

                                                          cam 19 Very Heavy

                                                          cog 19 Very Heavy

                                                          bolt 17 Very Heavy

                                                          nut 14 Very Heavy

                                                          screw 14 Very Heavy

                                                          nut 14 Quite Heavy

                                                          screw 14 Quite Heavy

                                                          screw 12 Quite Heavy

                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                          92

                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                          On considegravere AVG(Qty1) pour Qty

                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                          SP

                                                          s p qtyQty1

                                                          s1 p1 300 400

                                                          s1 p2 200

                                                          s1 p3 400 600

                                                          s1 p4 200 300

                                                          s1 p5 100

                                                          s1 p6 100 200

                                                          s2 p2 300 500

                                                          s3 p2 400

                                                          s4 p1 200 100

                                                          s4 p2 200

                                                          s4 p4 300

                                                          s4 p5 400

                                                          93

                                                          UNIONPreacutediction de Valeurs Inconnues

                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                          SP

                                                          s p qtyQty1

                                                          s1 p1 300 400

                                                          s1 p2 200

                                                          s1 p3 400 600

                                                          s1 p4 200 300

                                                          s1 p5 100

                                                          s1 p6 100 200

                                                          s2 p2 300 500

                                                          s3 p2 400

                                                          s4 p1 200 100

                                                          s4 p2 200

                                                          s4 p4 300

                                                          s4 p5 400

                                                          qty for partpredicted or

                                                          unknown Qty1

                                                          100 p5

                                                          100 predicted value 200

                                                          200 p2

                                                          200 predicted value 200

                                                          300 p4

                                                          300 predicted value 450

                                                          400 p2

                                                          400 p5

                                                          400 predicted value 600

                                                          94

                                                          Tendance

                                                          qty Qty1

                                                          100 200

                                                          200 300

                                                          300 400

                                                          400 600

                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                          Graph 3D avec Qty en abscisses

                                                          95

                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                          30102008 120 27102008 4

                                                          25102008 131 22102008 4

                                                          23102008 127 20102008 4

                                                          17102008 269 14102008 4

                                                          15102008 60 12102008 4

                                                          11102008 295 08102008 4

                                                          09102008 340 06102008 4

                                                          08102008 324 05102008 4

                                                          06102008 315 03102008 4

                                                          96

                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                          Graphique avec une info-bulle

                                                          97

                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                          glissantes

                                                          bull CSUM (Cumulative (Running) Sums)

                                                          bull MAVG

                                                          bull MSUM

                                                          bull MDIFF

                                                          bull Voir Teradata + loin

                                                          98

                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                          99

                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                          Entiers est une table aux avec la colonne de12hellip10

                                                          100

                                                          Seacuteries financiegraveres

                                                          capital taux nval apregraves n ans

                                                          taux1val1 apregraves n ans

                                                          GainAbs GainRel

                                                          100 005 1 105 006 106 1 1

                                                          100 005 2 110 006 112 2 2

                                                          100 005 3 115 006 119 4 4

                                                          100 005 4 121 006 126 5 5

                                                          100 005 5 127 006 133 6 6

                                                          100 005 6 134 006 141 7 7

                                                          100 005 7 140 006 150 10 10

                                                          100 005 8 147 006 159 12 12

                                                          100 005 9 155 006 168 13 13

                                                          100 005 10 162 006 179 17 17

                                                          100 005 11 171 006 189 18 18

                                                          100 005 12 179 006 201 22 22

                                                          100 005 13 188 006 213 25 25

                                                          100 005 14 197 006 226 29 29

                                                          100 005 15 207 006 239 32 32

                                                          100 005 16 218 006 254 36 36

                                                          100 005 17 229 006 269 40 40

                                                          100 005 18 240 006 285 45 45

                                                          100 005 19 252 006 302 50 50

                                                          100 005 20 265 006 320 55 55

                                                          101

                                                          Seacuteries financiegraveres

                                                          102

                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                          financiers de la table Produits

                                                          bull Dans la limite L de la somme donneacutee

                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                          bull En ordre descendant de prix

                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                          bull Plusieurs actionshellip

                                                          103

                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                          P prix

                                                          p3 200

                                                          p1 200

                                                          p2 400

                                                          p3 200

                                                          p4 100

                                                          p6 100

                                                          p5 300

                                                          p8 300

                                                          p7 400

                                                          p10 200

                                                          p12 300

                                                          p13 300

                                                          104

                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                          ORDER BY 4 desc 8 123

                                                          105

                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                          106

                                                          Creacuteation drsquoun Portefeuille Discussion

                                                          Creacuteation drsquoun Portefeuille Discussion

                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                          107

                                                          Creacuteation drsquoun Portefeuille Discussion

                                                          Creacuteation drsquoun Portefeuille Discussion

                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                          108

                                                          ROLLUP(DB2 amp SQL-Server)

                                                          ROLLUP(DB2 amp SQL-Server)

                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                          109

                                                          CUBE(DB2 amp SQL-Server)

                                                          CUBE(DB2 amp SQL-Server)

                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                          110

                                                          GROUPING SETS

                                                          On indique explicitement les groupesndash entre ()

                                                          le groupe () est constitueacute de toute la table

                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                          WHERE SP P = PP AND SP S = SS

                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                          HAVING tot-qty gt 100

                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                          111

                                                          Rollup Cube Grouping Setssous MsAccess

                                                          Il y en a pas On peut simuler ces manipulations en

                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                          Peut ecirctre laborieux pour le CUBE

                                                          112

                                                          ROLLUP

                                                          Remarquez le laquo null as cityraquo

                                                          113

                                                          ROLLUP

                                                          114

                                                          ROLLUP

                                                          Et le CUBE

                                                          Une solution pour l ambiguiumlteacute

                                                          de certains nuls

                                                          115

                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                          Wiley (publ)

                                                          116

                                                          Sous-Tables Parameacutetreacutees

                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                          117

                                                          Sous-Tables Parameacutetreacutees

                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                          118

                                                          Sous-Tables Parameacutetreacutees

                                                          119

                                                          Sous-Tables Parameacutetreacutees

                                                          120

                                                          Sous-Tables Parameacutetreacutees

                                                          121

                                                          Sous-Tables Parameacutetreacutees

                                                          122

                                                          Sous-Tables Parameacutetreacutees

                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                          123

                                                          Sous-Tables Parameacutetreacutees

                                                          Exeacutecution autonome

                                                          124

                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                          hellip

                                                          125

                                                          Liste de Choix Multibase

                                                          bull Requecircte Test-liste-de-choix mdb

                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                          126

                                                          Liste de Choix MultibaseReacutesultat

                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                          Tregraves bonne question agrave Microsoft

                                                          148

                                                          FIN

                                                          149

                                                          • SQL Avanceacute 2010
                                                          • Quoi amp Pourquoi
                                                          • Slide 3
                                                          • Synonymes
                                                          • Noms dattributs
                                                          • Slide 6
                                                          • Slide 7
                                                          • Slide 8
                                                          • Insertion dans une Vue
                                                          • Insertion dans une Vue (2)
                                                          • MAJ drsquoune Vue MsAccess
                                                          • MAJ drsquoune Vue MsAccess (2)
                                                          • Suppression dans une Vue MsAccess
                                                          • MsAccess Leacutegendes
                                                          • Expressions de valeur
                                                          • Expressions de valeur (2)
                                                          • Pour en savoir + sur les attributs dynamiques
                                                          • UNION et Noms Drsquoattributs
                                                          • UNION et ORDER BY
                                                          • ORDER BY et expressions de valeur
                                                          • ORDER BY et expressions de valeur (2)
                                                          • Ordre de prioriteacute dopeacuterations
                                                          • Preacutedicat TOP
                                                          • Preacutedicat TOP (2)
                                                          • Clause BETWEEN
                                                          • Limitations de NOT
                                                          • ANY et ALL
                                                          • Injection SQL
                                                          • Injection SQL (2)
                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                          • Tabulations Croiseacutees
                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                          • Tabulations Croiseacutees (2)
                                                          • Tabulations Croiseacutees (3)
                                                          • Tabulations Croiseacutees (4)
                                                          • Tabulations Croiseacutees (5)
                                                          • XOR
                                                          • IMP
                                                          • Sous-requecirctes
                                                          • Sous-requecirctes (2)
                                                          • Sous-requecirctes (3)
                                                          • Sous-requecirctes (4)
                                                          • Sous-requecirctes (5)
                                                          • Sous-requecirctes (6)
                                                          • Sous-requecirctes (7)
                                                          • Application aux Probabiliteacutes
                                                          • Clause FROM imbriqueacutee
                                                          • Clause FROM imbriqueacutee (2)
                                                          • Clause FROM imbriqueacutee (3)
                                                          • Clause FROM imbriqueacutee (4)
                                                          • Clause FROM imbriqueacutee (5)
                                                          • Clause FROM imbriqueacutee (6)
                                                          • Valeurs nulles
                                                          • Valeurs nulles (2)
                                                          • Valeurs nulles (3)
                                                          • Valeurs nulles (4)
                                                          • Fonctions Scalaires DateTemps
                                                          • Fonctions Scalaires DateTemps (2)
                                                          • Fonctions Scalaires DateTemps (3)
                                                          • Fonctions Scalaires DateTemps (4)
                                                          • Fonctions Scalaires DateTemps (5)
                                                          • Fonction Scalaire RND
                                                          • Fonction Scalaire RND (2)
                                                          • Fonctions Financiegraveres
                                                          • Fonctions Financiegraveres (2)
                                                          • Fonction DDB
                                                          • Fonction DDB (2)
                                                          • Fonction PMT
                                                          • Fonction PMT (2)
                                                          • Placement agrave taux variable
                                                          • GROUP BY
                                                          • LIST Function
                                                          • LIST Function (2)
                                                          • GROUP BY avec WHERE
                                                          • GROUP BY (2)
                                                          • GROUP BY avec HAVING
                                                          • T-GROUP BY
                                                          • T-GROUP BY (2)
                                                          • T-GROUP BY (3)
                                                          • T-GROUP BY (4)
                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                          • Rangs Denses (Dense Ranking)
                                                          • Rangs Denses Graphique MsAccess
                                                          • Distribution
                                                          • Reacutesultat
                                                          • Distribution Cumulative
                                                          • Reacutesultat (2)
                                                          • Cateacutegorisation
                                                          • Cateacutegorisation (2)
                                                          • Cateacutegorisation (3)
                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                          • UNION Preacutediction de Valeurs Inconnues
                                                          • Tendance
                                                          • Moyenne Glissante
                                                          • Moyenne Glissante (2)
                                                          • Moyenne Glissante (3)
                                                          • Seacuteries financiegraveres
                                                          • Seacuteries financiegraveres (2)
                                                          • Seacuteries financiegraveres (3)
                                                          • Seacuteries financiegraveres (4)
                                                          • Creacuteation drsquoun Portefeuille
                                                          • Creacuteation drsquoun Portefeuille (2)
                                                          • Creacuteation drsquoun Portefeuille (3)
                                                          • Creacuteation drsquoun Portefeuille (4)
                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                          • ROLLUP (DB2 amp SQL-Server)
                                                          • CUBE (DB2 amp SQL-Server)
                                                          • GROUPING SETS
                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                          • Slide 112
                                                          • Slide 113
                                                          • Slide 114
                                                          • Autres Opeacuterations Utiles
                                                          • Sous-Tables Parameacutetreacutees
                                                          • Sous-Tables Parameacutetreacutees (2)
                                                          • Sous-Tables Parameacutetreacutees (3)
                                                          • Sous-Tables Parameacutetreacutees (4)
                                                          • Sous-Tables Parameacutetreacutees (5)
                                                          • Sous-Tables Parameacutetreacutees (6)
                                                          • Sous-Tables Parameacutetreacutees (7)
                                                          • Sous-Tables Parameacutetreacutees (8)
                                                          • Liste de Choix Multibase
                                                          • Liste de Choix Multibase (2)
                                                          • Liste de Choix Multibase Reacutesultat
                                                          • FIN
                                                          • Slide 149

                                                            30

                                                            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                            Preacutesentent les reacutesultat sous forme habituelle de feuilles de calculsndashLes agreacutegats SUM AVG de GROUP

                                                            BY et les valeurs individuelles en mecircme temps

                                                            ndash Impossible avec SQL standard

                                                            31

                                                            S Total Qty p1 p2 p3 p4 p5 p6

                                                            s1 1300 300 200 400 200 100 100

                                                            s2 700 300 400

                                                            s3 200 200

                                                            s4 900 200 300 400

                                                            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                            Tabulations Croiseacutees

                                                            32

                                                            Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                            Transforment les valeurs dattributs en attributsndash Par exemple

                                                            les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                            les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                            33

                                                            S Total Qty p1 p2 p3 p4 p5 p6

                                                            s1 1300 300 200 400 200 100 100

                                                            s2 700 300 400

                                                            s3 200 200

                                                            s4 900 200 300 400

                                                            Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                            Tabulations Croiseacutees

                                                            34

                                                            TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                            Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                            Tabulations Croiseacutees

                                                            Nouvellescolonnes

                                                            35

                                                            La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                            On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                            Tabulations Croiseacutees

                                                            36

                                                            On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                            Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                            On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                            Mais cette clause naffecte pas les calculs des agreacutegats

                                                            Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                            Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                            Tabulations Croiseacutees

                                                            37

                                                            XORSELECT S[S] SStatus SCity

                                                            FROM S

                                                            WHERE Status=10 Xor city=paris

                                                            bull A noter le traitement du nul dans City

                                                            38

                                                            IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                            bull A noter le traitement du nul dans City

                                                            39

                                                            Sous-requecirctes

                                                            A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                            clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                            rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                            sous-requecircte

                                                            SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                            40

                                                            Sous-requecirctes

                                                            Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                            laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                            vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                            plus grande

                                                            41

                                                            Sous-requecirctes

                                                            Skylinendash Tout objet non-domineacute (cacheacute

                                                            totalement) par un autre

                                                            SELECT X[s] X[p] qty delay

                                                            FROM SP X

                                                            where not exists

                                                            (select from SP as Y

                                                            where (Yqty gt= XQty and YDelay lt XDelay or

                                                            Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                            order by X[p]

                                                            42

                                                            Sous-requecirctes Reacutesultat

                                                            s p qty delay

                                                            s1 p1 300 15

                                                            s4 p1 200 13

                                                            s3 p2 400 15

                                                            s2 p2 300 12

                                                            s1 p3 400 17

                                                            s4 p4 300 11

                                                            s4 p5 400 7

                                                            s1 p6 100 8

                                                            s p qty Delay

                                                            s1 p1 300 15

                                                            s1 p2 200 12

                                                            s1 p3 400 17

                                                            s1 p4 200 11

                                                            s1 p5 100 7

                                                            s1 p6 100 8

                                                            s2 p2 300 12

                                                            s3 p2 400 15

                                                            s4 p1 200 13

                                                            s4 p2 200 15

                                                            s4 p4 300 11

                                                            s4 p5 400 7

                                                            S

                                                            43

                                                            Sous-requecirctes

                                                            On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                            SELECT Count() AS TotalQty

                                                            FROM (select distinct qty from sp)

                                                            On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                            SELECT SP[s] SP[p] qty

                                                            (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                            round(qtyTotalQty 3) AS Fraction

                                                            FROM SP order by [s]

                                                            44

                                                            Sous-requecirctes

                                                            s p qty TotalQty Fraction

                                                            s1 p1 300 1300 0231

                                                            s1 p6 100 1300 0077

                                                            s1 p5 100 1300 0077

                                                            s1 p4 200 1300 0154

                                                            s1 p3 400 1300 0308

                                                            s1 p2 200 1300 0154

                                                            s2 p2 300 300 1

                                                            s3 p2 400 400 1

                                                            s4 p5 400 1100 0364

                                                            s4 p4 300 1100 0273

                                                            s4 p2 200 1100 0182

                                                            bull ReacutesultatSP

                                                            s p qty

                                                            s1 p1 300

                                                            s1 p2 200

                                                            s1 p3 400

                                                            s1 p4 200

                                                            s1 p5 100

                                                            s1 p6 100

                                                            s2 p2 300

                                                            s3 p2 400

                                                            s4 p1 200

                                                            s4 p2 200

                                                            s4 p4 300

                                                            s4 p5 400

                                                            45

                                                            Sous-requecirctesbull En Mode Graphique

                                                            s p qtyTotalQty

                                                            Fraction

                                                            s1 p1 300 1300 0231

                                                            s1 p6 100 1300 0077

                                                            s1 p5 100 1300 0077

                                                            s1 p4 200 1300 0154

                                                            s1 p3 400 1300 0308

                                                            s1 p2 200 1300 0154

                                                            s2 p2 300 300 1

                                                            s3 p2 400 400 1

                                                            s4 p5 400 1100 0364

                                                            s4 p4 300 1100 0273

                                                            s4 p2 200 1100 0182

                                                            46

                                                            Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                            SELECT (select count(qty) from SP

                                                            where qty gt= [seuil svp ]) count() as reacutesultat

                                                            FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                            probabiliteacute conditionnelle

                                                            47

                                                            Clause FROM imbriqueacutee

                                                            Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                            Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                            Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                            Agrave essayer

                                                            48

                                                            Clause FROM imbriqueacuteePossibiliteacutes

                                                            ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                            ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                            MsAccess

                                                            ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                            Mais la reacutefeacuterence au nom de la requecircte OK

                                                            49

                                                            Clause FROM imbriqueacutee

                                                            SELECT sum(weight) AS [poids-total]

                                                            FROM (SELECT weight pcity FROM P WHERE City like l

                                                            UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                            50

                                                            Clause FROM imbriqueacutee

                                                            select avg(moy1) as [moyenne-des-moyennes]

                                                            FROM

                                                            (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                            UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                            51

                                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                            select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                            52

                                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                            totaux partiels et total geacuteneacuteral

                                                            total_Id TotalQty

                                                            s1 1300

                                                            s2 300

                                                            s3 400

                                                            s4 400

                                                            total Geacuteneacuteral

                                                            2400

                                                            53

                                                            Valeurs nulles

                                                            Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                            En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                            DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                            Non WHERE HAVING GROUP BY (rel 1)

                                                            Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                            MsAccess Oui DISTINCT Autres clauses

                                                            54

                                                            Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                            1 x gt y est vrai ou faux

                                                            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                            SELECT FROM S WHERE CITY =Paris

                                                            UNION

                                                            SELECT FROM S WHERE NOT CITY = Paris

                                                            est toujours pourquoi faire simpleSELECT FROM S

                                                            si on peut faire compliqueacute

                                                            55

                                                            Valeurs nullesValeurs nulles

                                                            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                            56

                                                            Valeurs nulles

                                                            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                            LOG (nul) -gt Error A voir cas par cas

                                                            57

                                                            Fonctions Scalaires DateTemps

                                                            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                            58

                                                            Fonctions Scalaires DateTemps

                                                            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                            weekday(day(now())-1) AS [day]FROM S

                                                            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                            59

                                                            Fonctions Scalaires DateTemps

                                                            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                            Interval Explanation

                                                            Yyyy Year

                                                            q Quarter

                                                            m Month

                                                            y Day of year

                                                            d Day

                                                            w Weekday

                                                            ww Week

                                                            h Hour

                                                            n Minute

                                                            s Second

                                                            60

                                                            Fonctions Scalaires DateTemps

                                                            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                            Test DateDiff

                                                            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                            61

                                                            Fonctions Scalaires DateTemps

                                                            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                            Liste tous les tuples ougrave DateV est de Janvier 2009

                                                            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                            62

                                                            Fonction Scalaire RND

                                                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                            FROM SPORDER BY rnd(qty) DESC

                                                            echantillon s rank

                                                            s1 502628087997437E-02

                                                            s4 0518015921115875

                                                            s3 075702953338623

                                                            63

                                                            Fonction Scalaire RND

                                                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                            FROM SPORDER BY rnd(qty) DESC

                                                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                            Votre commentaire ici

                                                            64

                                                            Fonctions Financiegraveres

                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                            65

                                                            Fonctions Financiegraveres

                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                            66

                                                            Fonction DDB

                                                            insert into DDB (cost salvage life factor amortiss period)

                                                            select 100 as cost 70 as salvage 5 as life 1 as factor

                                                            DDB(cost salvage life period factor) as amortiss period

                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                            67

                                                            Fonction DDB

                                                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                            68

                                                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                            nombres neacutegatifs

                                                            Fonction PMT

                                                            69

                                                            Fonction PMT

                                                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                            Fonction PMT calcul dannuiteacute demprunt

                                                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                            preacutesentevaleur_payeacutee surprime

                                                            -16049 005 20 200000 -320980 -120980

                                                            70

                                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                            Et les nuls que log ne supporte pas

                                                            Anneacutee relative

                                                            Taux

                                                            1 4

                                                            2 4

                                                            3 3

                                                            4 5

                                                            5 5

                                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                                            71

                                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                            est eacutequivalente agrave

                                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                            WHERE XP = SPP) FROM SP

                                                            Testez

                                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                            72

                                                            LIST Function La requecircte

                                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                            Comme les tabulations croiseacutees

                                                            ndash Mais en + simple

                                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                            ndash En mono attribut (2004)

                                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                            sous-formulaires

                                                            73

                                                            LIST Function

                                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                            74

                                                            GROUP BY avec WHERE

                                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                            75

                                                            GROUP BY

                                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                            Pourquoi

                                                            76

                                                            GROUP BY avec HAVING

                                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                            77

                                                            T-GROUP BY Proposeacute pour SQL

                                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                            Le rocircle de -join par rapport agrave equi-join

                                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                            INT(AVG(QTY)) AS QTY2FROM SP

                                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                            78

                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                            FROM SP Vrai ou Faux

                                                            79

                                                            T-GROUP BY

                                                            Reacutesultat

                                                            part avg_qty_other_parts part_avg_qty

                                                            p1 250 300

                                                            p2 262 250

                                                            p3 245 400

                                                            p4 260 250

                                                            p5 260 250

                                                            p6 272 100

                                                            80

                                                            T-GROUP BY

                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                            81

                                                            Rangs Non-Denses(Non Dense Ranking)

                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                            s p qtyND-rank

                                                            s4 p5 400 1

                                                            s3 p2 400 1

                                                            s1 p3 400 1

                                                            s4 p4 300 4

                                                            s2 p2 300 4

                                                            s1 p1 300 4

                                                            s4 p2 200 7

                                                            s1 p4 200 7

                                                            s1 p2 200 7

                                                            s4 p1 200 7

                                                            s1 p6 100 11

                                                            s1 p5 100 11

                                                            82

                                                            Rangs Non-Denses(Graphique MsAccess)

                                                            s p qty ND-rank

                                                            s4 p5 400 1

                                                            s3 p2 400 1

                                                            s1 p3 400 1

                                                            s4 p4 300 4

                                                            s2 p2 300 4

                                                            s1 p1 300 4

                                                            s4 p2 200 7

                                                            s1 p4 200 7

                                                            s1 p2 200 7

                                                            s4 p1 200 7

                                                            s1 p6 100 11

                                                            s1 p5 100 11

                                                            83

                                                            Rangs Denses(Dense Ranking)

                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                            s p qtyD-rank

                                                            s1 p3 400 1

                                                            s3 p2 400 1

                                                            s4 p5 400 1

                                                            s1 p1 300 2

                                                            s2 p2 300 2

                                                            s4 p4 300 2

                                                            s1 p4 200 3

                                                            s1 p2 200 3

                                                            s4 p2 200 3

                                                            s4 p1 200 3

                                                            s1 p6 100 4

                                                            s1 p5 100 4

                                                            84

                                                            Rangs DensesGraphique MsAccess

                                                            s p qty D-rank

                                                            s1 p3 400 1

                                                            s3 p2 400 1

                                                            s4 p5 400 1

                                                            s1 p1 300 2

                                                            s2 p2 300 2

                                                            s4 p4 300 2

                                                            s1 p4 200 3

                                                            s1 p2 200 3

                                                            s4 p2 200 3

                                                            s4 p1 200 3

                                                            s1 p6 100 4

                                                            s1 p5 100 4

                                                            85

                                                            Distribution

                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                            86

                                                            Reacutesultat

                                                            s Distribution

                                                            s1 0419

                                                            s2 0097

                                                            s3 0129

                                                            s4 0355

                                                            87

                                                            Distribution Cumulative

                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                            FROM SP

                                                            ORDER BY SP[s]

                                                            88

                                                            Reacutesultat

                                                            sDistribution Cumuleacutee

                                                            s1 0419

                                                            s2 0516

                                                            s3 0645

                                                            s4 1

                                                            89

                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                            90

                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                            FROM S

                                                            GROUP BY S[S] SSName SStatus SCity

                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                            s1 Smith Paris good good

                                                            s2 Jones 100 london good VGood

                                                            s3 Blake 30 Paris good good

                                                            s4 Clark 10 london OK OK

                                                            s5 Adams 30 Athens good good

                                                            bull Notez le traitement du null

                                                            91

                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                            SELECT Ppname weight Very Heavy as Warning

                                                            FROM P where weight gt 13

                                                            union

                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                            UNION

                                                            select Ppname weight Light as warn from p where weight lt 10

                                                            ORDER BY warning DESC weight DESC

                                                            pname weight Warning

                                                            cam 19 Very Heavy

                                                            cog 19 Very Heavy

                                                            bolt 17 Very Heavy

                                                            nut 14 Very Heavy

                                                            screw 14 Very Heavy

                                                            nut 14 Quite Heavy

                                                            screw 14 Quite Heavy

                                                            screw 12 Quite Heavy

                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                            92

                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                            On considegravere AVG(Qty1) pour Qty

                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                            SP

                                                            s p qtyQty1

                                                            s1 p1 300 400

                                                            s1 p2 200

                                                            s1 p3 400 600

                                                            s1 p4 200 300

                                                            s1 p5 100

                                                            s1 p6 100 200

                                                            s2 p2 300 500

                                                            s3 p2 400

                                                            s4 p1 200 100

                                                            s4 p2 200

                                                            s4 p4 300

                                                            s4 p5 400

                                                            93

                                                            UNIONPreacutediction de Valeurs Inconnues

                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                            SP

                                                            s p qtyQty1

                                                            s1 p1 300 400

                                                            s1 p2 200

                                                            s1 p3 400 600

                                                            s1 p4 200 300

                                                            s1 p5 100

                                                            s1 p6 100 200

                                                            s2 p2 300 500

                                                            s3 p2 400

                                                            s4 p1 200 100

                                                            s4 p2 200

                                                            s4 p4 300

                                                            s4 p5 400

                                                            qty for partpredicted or

                                                            unknown Qty1

                                                            100 p5

                                                            100 predicted value 200

                                                            200 p2

                                                            200 predicted value 200

                                                            300 p4

                                                            300 predicted value 450

                                                            400 p2

                                                            400 p5

                                                            400 predicted value 600

                                                            94

                                                            Tendance

                                                            qty Qty1

                                                            100 200

                                                            200 300

                                                            300 400

                                                            400 600

                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                            Graph 3D avec Qty en abscisses

                                                            95

                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                            30102008 120 27102008 4

                                                            25102008 131 22102008 4

                                                            23102008 127 20102008 4

                                                            17102008 269 14102008 4

                                                            15102008 60 12102008 4

                                                            11102008 295 08102008 4

                                                            09102008 340 06102008 4

                                                            08102008 324 05102008 4

                                                            06102008 315 03102008 4

                                                            96

                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                            Graphique avec une info-bulle

                                                            97

                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                            glissantes

                                                            bull CSUM (Cumulative (Running) Sums)

                                                            bull MAVG

                                                            bull MSUM

                                                            bull MDIFF

                                                            bull Voir Teradata + loin

                                                            98

                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                            99

                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                            Entiers est une table aux avec la colonne de12hellip10

                                                            100

                                                            Seacuteries financiegraveres

                                                            capital taux nval apregraves n ans

                                                            taux1val1 apregraves n ans

                                                            GainAbs GainRel

                                                            100 005 1 105 006 106 1 1

                                                            100 005 2 110 006 112 2 2

                                                            100 005 3 115 006 119 4 4

                                                            100 005 4 121 006 126 5 5

                                                            100 005 5 127 006 133 6 6

                                                            100 005 6 134 006 141 7 7

                                                            100 005 7 140 006 150 10 10

                                                            100 005 8 147 006 159 12 12

                                                            100 005 9 155 006 168 13 13

                                                            100 005 10 162 006 179 17 17

                                                            100 005 11 171 006 189 18 18

                                                            100 005 12 179 006 201 22 22

                                                            100 005 13 188 006 213 25 25

                                                            100 005 14 197 006 226 29 29

                                                            100 005 15 207 006 239 32 32

                                                            100 005 16 218 006 254 36 36

                                                            100 005 17 229 006 269 40 40

                                                            100 005 18 240 006 285 45 45

                                                            100 005 19 252 006 302 50 50

                                                            100 005 20 265 006 320 55 55

                                                            101

                                                            Seacuteries financiegraveres

                                                            102

                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                            financiers de la table Produits

                                                            bull Dans la limite L de la somme donneacutee

                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                            bull En ordre descendant de prix

                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                            bull Plusieurs actionshellip

                                                            103

                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                            P prix

                                                            p3 200

                                                            p1 200

                                                            p2 400

                                                            p3 200

                                                            p4 100

                                                            p6 100

                                                            p5 300

                                                            p8 300

                                                            p7 400

                                                            p10 200

                                                            p12 300

                                                            p13 300

                                                            104

                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                            ORDER BY 4 desc 8 123

                                                            105

                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                            106

                                                            Creacuteation drsquoun Portefeuille Discussion

                                                            Creacuteation drsquoun Portefeuille Discussion

                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                            107

                                                            Creacuteation drsquoun Portefeuille Discussion

                                                            Creacuteation drsquoun Portefeuille Discussion

                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                            108

                                                            ROLLUP(DB2 amp SQL-Server)

                                                            ROLLUP(DB2 amp SQL-Server)

                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                            109

                                                            CUBE(DB2 amp SQL-Server)

                                                            CUBE(DB2 amp SQL-Server)

                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                            110

                                                            GROUPING SETS

                                                            On indique explicitement les groupesndash entre ()

                                                            le groupe () est constitueacute de toute la table

                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                            WHERE SP P = PP AND SP S = SS

                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                            HAVING tot-qty gt 100

                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                            111

                                                            Rollup Cube Grouping Setssous MsAccess

                                                            Il y en a pas On peut simuler ces manipulations en

                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                            Peut ecirctre laborieux pour le CUBE

                                                            112

                                                            ROLLUP

                                                            Remarquez le laquo null as cityraquo

                                                            113

                                                            ROLLUP

                                                            114

                                                            ROLLUP

                                                            Et le CUBE

                                                            Une solution pour l ambiguiumlteacute

                                                            de certains nuls

                                                            115

                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                            Wiley (publ)

                                                            116

                                                            Sous-Tables Parameacutetreacutees

                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                            117

                                                            Sous-Tables Parameacutetreacutees

                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                            118

                                                            Sous-Tables Parameacutetreacutees

                                                            119

                                                            Sous-Tables Parameacutetreacutees

                                                            120

                                                            Sous-Tables Parameacutetreacutees

                                                            121

                                                            Sous-Tables Parameacutetreacutees

                                                            122

                                                            Sous-Tables Parameacutetreacutees

                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                            123

                                                            Sous-Tables Parameacutetreacutees

                                                            Exeacutecution autonome

                                                            124

                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                            hellip

                                                            125

                                                            Liste de Choix Multibase

                                                            bull Requecircte Test-liste-de-choix mdb

                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                            126

                                                            Liste de Choix MultibaseReacutesultat

                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                            Tregraves bonne question agrave Microsoft

                                                            148

                                                            FIN

                                                            149

                                                            • SQL Avanceacute 2010
                                                            • Quoi amp Pourquoi
                                                            • Slide 3
                                                            • Synonymes
                                                            • Noms dattributs
                                                            • Slide 6
                                                            • Slide 7
                                                            • Slide 8
                                                            • Insertion dans une Vue
                                                            • Insertion dans une Vue (2)
                                                            • MAJ drsquoune Vue MsAccess
                                                            • MAJ drsquoune Vue MsAccess (2)
                                                            • Suppression dans une Vue MsAccess
                                                            • MsAccess Leacutegendes
                                                            • Expressions de valeur
                                                            • Expressions de valeur (2)
                                                            • Pour en savoir + sur les attributs dynamiques
                                                            • UNION et Noms Drsquoattributs
                                                            • UNION et ORDER BY
                                                            • ORDER BY et expressions de valeur
                                                            • ORDER BY et expressions de valeur (2)
                                                            • Ordre de prioriteacute dopeacuterations
                                                            • Preacutedicat TOP
                                                            • Preacutedicat TOP (2)
                                                            • Clause BETWEEN
                                                            • Limitations de NOT
                                                            • ANY et ALL
                                                            • Injection SQL
                                                            • Injection SQL (2)
                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                            • Tabulations Croiseacutees
                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                            • Tabulations Croiseacutees (2)
                                                            • Tabulations Croiseacutees (3)
                                                            • Tabulations Croiseacutees (4)
                                                            • Tabulations Croiseacutees (5)
                                                            • XOR
                                                            • IMP
                                                            • Sous-requecirctes
                                                            • Sous-requecirctes (2)
                                                            • Sous-requecirctes (3)
                                                            • Sous-requecirctes (4)
                                                            • Sous-requecirctes (5)
                                                            • Sous-requecirctes (6)
                                                            • Sous-requecirctes (7)
                                                            • Application aux Probabiliteacutes
                                                            • Clause FROM imbriqueacutee
                                                            • Clause FROM imbriqueacutee (2)
                                                            • Clause FROM imbriqueacutee (3)
                                                            • Clause FROM imbriqueacutee (4)
                                                            • Clause FROM imbriqueacutee (5)
                                                            • Clause FROM imbriqueacutee (6)
                                                            • Valeurs nulles
                                                            • Valeurs nulles (2)
                                                            • Valeurs nulles (3)
                                                            • Valeurs nulles (4)
                                                            • Fonctions Scalaires DateTemps
                                                            • Fonctions Scalaires DateTemps (2)
                                                            • Fonctions Scalaires DateTemps (3)
                                                            • Fonctions Scalaires DateTemps (4)
                                                            • Fonctions Scalaires DateTemps (5)
                                                            • Fonction Scalaire RND
                                                            • Fonction Scalaire RND (2)
                                                            • Fonctions Financiegraveres
                                                            • Fonctions Financiegraveres (2)
                                                            • Fonction DDB
                                                            • Fonction DDB (2)
                                                            • Fonction PMT
                                                            • Fonction PMT (2)
                                                            • Placement agrave taux variable
                                                            • GROUP BY
                                                            • LIST Function
                                                            • LIST Function (2)
                                                            • GROUP BY avec WHERE
                                                            • GROUP BY (2)
                                                            • GROUP BY avec HAVING
                                                            • T-GROUP BY
                                                            • T-GROUP BY (2)
                                                            • T-GROUP BY (3)
                                                            • T-GROUP BY (4)
                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                            • Rangs Denses (Dense Ranking)
                                                            • Rangs Denses Graphique MsAccess
                                                            • Distribution
                                                            • Reacutesultat
                                                            • Distribution Cumulative
                                                            • Reacutesultat (2)
                                                            • Cateacutegorisation
                                                            • Cateacutegorisation (2)
                                                            • Cateacutegorisation (3)
                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                            • UNION Preacutediction de Valeurs Inconnues
                                                            • Tendance
                                                            • Moyenne Glissante
                                                            • Moyenne Glissante (2)
                                                            • Moyenne Glissante (3)
                                                            • Seacuteries financiegraveres
                                                            • Seacuteries financiegraveres (2)
                                                            • Seacuteries financiegraveres (3)
                                                            • Seacuteries financiegraveres (4)
                                                            • Creacuteation drsquoun Portefeuille
                                                            • Creacuteation drsquoun Portefeuille (2)
                                                            • Creacuteation drsquoun Portefeuille (3)
                                                            • Creacuteation drsquoun Portefeuille (4)
                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                            • ROLLUP (DB2 amp SQL-Server)
                                                            • CUBE (DB2 amp SQL-Server)
                                                            • GROUPING SETS
                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                            • Slide 112
                                                            • Slide 113
                                                            • Slide 114
                                                            • Autres Opeacuterations Utiles
                                                            • Sous-Tables Parameacutetreacutees
                                                            • Sous-Tables Parameacutetreacutees (2)
                                                            • Sous-Tables Parameacutetreacutees (3)
                                                            • Sous-Tables Parameacutetreacutees (4)
                                                            • Sous-Tables Parameacutetreacutees (5)
                                                            • Sous-Tables Parameacutetreacutees (6)
                                                            • Sous-Tables Parameacutetreacutees (7)
                                                            • Sous-Tables Parameacutetreacutees (8)
                                                            • Liste de Choix Multibase
                                                            • Liste de Choix Multibase (2)
                                                            • Liste de Choix Multibase Reacutesultat
                                                            • FIN
                                                            • Slide 149

                                                              31

                                                              S Total Qty p1 p2 p3 p4 p5 p6

                                                              s1 1300 300 200 400 200 100 100

                                                              s2 700 300 400

                                                              s3 200 200

                                                              s4 900 200 300 400

                                                              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                              Tabulations Croiseacutees

                                                              32

                                                              Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                              Transforment les valeurs dattributs en attributsndash Par exemple

                                                              les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                              les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                              33

                                                              S Total Qty p1 p2 p3 p4 p5 p6

                                                              s1 1300 300 200 400 200 100 100

                                                              s2 700 300 400

                                                              s3 200 200

                                                              s4 900 200 300 400

                                                              Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                              Tabulations Croiseacutees

                                                              34

                                                              TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                              Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                              Tabulations Croiseacutees

                                                              Nouvellescolonnes

                                                              35

                                                              La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                              On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                              Tabulations Croiseacutees

                                                              36

                                                              On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                              Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                              On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                              Mais cette clause naffecte pas les calculs des agreacutegats

                                                              Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                              Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                              Tabulations Croiseacutees

                                                              37

                                                              XORSELECT S[S] SStatus SCity

                                                              FROM S

                                                              WHERE Status=10 Xor city=paris

                                                              bull A noter le traitement du nul dans City

                                                              38

                                                              IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                              bull A noter le traitement du nul dans City

                                                              39

                                                              Sous-requecirctes

                                                              A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                              clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                              rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                              sous-requecircte

                                                              SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                              40

                                                              Sous-requecirctes

                                                              Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                              laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                              vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                              plus grande

                                                              41

                                                              Sous-requecirctes

                                                              Skylinendash Tout objet non-domineacute (cacheacute

                                                              totalement) par un autre

                                                              SELECT X[s] X[p] qty delay

                                                              FROM SP X

                                                              where not exists

                                                              (select from SP as Y

                                                              where (Yqty gt= XQty and YDelay lt XDelay or

                                                              Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                              order by X[p]

                                                              42

                                                              Sous-requecirctes Reacutesultat

                                                              s p qty delay

                                                              s1 p1 300 15

                                                              s4 p1 200 13

                                                              s3 p2 400 15

                                                              s2 p2 300 12

                                                              s1 p3 400 17

                                                              s4 p4 300 11

                                                              s4 p5 400 7

                                                              s1 p6 100 8

                                                              s p qty Delay

                                                              s1 p1 300 15

                                                              s1 p2 200 12

                                                              s1 p3 400 17

                                                              s1 p4 200 11

                                                              s1 p5 100 7

                                                              s1 p6 100 8

                                                              s2 p2 300 12

                                                              s3 p2 400 15

                                                              s4 p1 200 13

                                                              s4 p2 200 15

                                                              s4 p4 300 11

                                                              s4 p5 400 7

                                                              S

                                                              43

                                                              Sous-requecirctes

                                                              On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                              SELECT Count() AS TotalQty

                                                              FROM (select distinct qty from sp)

                                                              On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                              SELECT SP[s] SP[p] qty

                                                              (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                              round(qtyTotalQty 3) AS Fraction

                                                              FROM SP order by [s]

                                                              44

                                                              Sous-requecirctes

                                                              s p qty TotalQty Fraction

                                                              s1 p1 300 1300 0231

                                                              s1 p6 100 1300 0077

                                                              s1 p5 100 1300 0077

                                                              s1 p4 200 1300 0154

                                                              s1 p3 400 1300 0308

                                                              s1 p2 200 1300 0154

                                                              s2 p2 300 300 1

                                                              s3 p2 400 400 1

                                                              s4 p5 400 1100 0364

                                                              s4 p4 300 1100 0273

                                                              s4 p2 200 1100 0182

                                                              bull ReacutesultatSP

                                                              s p qty

                                                              s1 p1 300

                                                              s1 p2 200

                                                              s1 p3 400

                                                              s1 p4 200

                                                              s1 p5 100

                                                              s1 p6 100

                                                              s2 p2 300

                                                              s3 p2 400

                                                              s4 p1 200

                                                              s4 p2 200

                                                              s4 p4 300

                                                              s4 p5 400

                                                              45

                                                              Sous-requecirctesbull En Mode Graphique

                                                              s p qtyTotalQty

                                                              Fraction

                                                              s1 p1 300 1300 0231

                                                              s1 p6 100 1300 0077

                                                              s1 p5 100 1300 0077

                                                              s1 p4 200 1300 0154

                                                              s1 p3 400 1300 0308

                                                              s1 p2 200 1300 0154

                                                              s2 p2 300 300 1

                                                              s3 p2 400 400 1

                                                              s4 p5 400 1100 0364

                                                              s4 p4 300 1100 0273

                                                              s4 p2 200 1100 0182

                                                              46

                                                              Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                              SELECT (select count(qty) from SP

                                                              where qty gt= [seuil svp ]) count() as reacutesultat

                                                              FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                              probabiliteacute conditionnelle

                                                              47

                                                              Clause FROM imbriqueacutee

                                                              Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                              Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                              Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                              Agrave essayer

                                                              48

                                                              Clause FROM imbriqueacuteePossibiliteacutes

                                                              ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                              ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                              MsAccess

                                                              ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                              Mais la reacutefeacuterence au nom de la requecircte OK

                                                              49

                                                              Clause FROM imbriqueacutee

                                                              SELECT sum(weight) AS [poids-total]

                                                              FROM (SELECT weight pcity FROM P WHERE City like l

                                                              UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                              50

                                                              Clause FROM imbriqueacutee

                                                              select avg(moy1) as [moyenne-des-moyennes]

                                                              FROM

                                                              (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                              UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                              51

                                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                              select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                              52

                                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                              totaux partiels et total geacuteneacuteral

                                                              total_Id TotalQty

                                                              s1 1300

                                                              s2 300

                                                              s3 400

                                                              s4 400

                                                              total Geacuteneacuteral

                                                              2400

                                                              53

                                                              Valeurs nulles

                                                              Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                              En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                              DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                              Non WHERE HAVING GROUP BY (rel 1)

                                                              Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                              MsAccess Oui DISTINCT Autres clauses

                                                              54

                                                              Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                              1 x gt y est vrai ou faux

                                                              2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                              DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                              SELECT FROM S WHERE CITY =Paris

                                                              UNION

                                                              SELECT FROM S WHERE NOT CITY = Paris

                                                              est toujours pourquoi faire simpleSELECT FROM S

                                                              si on peut faire compliqueacute

                                                              55

                                                              Valeurs nullesValeurs nulles

                                                              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                              56

                                                              Valeurs nulles

                                                              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                              LOG (nul) -gt Error A voir cas par cas

                                                              57

                                                              Fonctions Scalaires DateTemps

                                                              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                              58

                                                              Fonctions Scalaires DateTemps

                                                              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                              weekday(day(now())-1) AS [day]FROM S

                                                              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                              59

                                                              Fonctions Scalaires DateTemps

                                                              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                              Interval Explanation

                                                              Yyyy Year

                                                              q Quarter

                                                              m Month

                                                              y Day of year

                                                              d Day

                                                              w Weekday

                                                              ww Week

                                                              h Hour

                                                              n Minute

                                                              s Second

                                                              60

                                                              Fonctions Scalaires DateTemps

                                                              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                              Test DateDiff

                                                              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                              61

                                                              Fonctions Scalaires DateTemps

                                                              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                              Liste tous les tuples ougrave DateV est de Janvier 2009

                                                              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                              62

                                                              Fonction Scalaire RND

                                                              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                              FROM SPORDER BY rnd(qty) DESC

                                                              echantillon s rank

                                                              s1 502628087997437E-02

                                                              s4 0518015921115875

                                                              s3 075702953338623

                                                              63

                                                              Fonction Scalaire RND

                                                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                              FROM SPORDER BY rnd(qty) DESC

                                                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                              Votre commentaire ici

                                                              64

                                                              Fonctions Financiegraveres

                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                              65

                                                              Fonctions Financiegraveres

                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                              66

                                                              Fonction DDB

                                                              insert into DDB (cost salvage life factor amortiss period)

                                                              select 100 as cost 70 as salvage 5 as life 1 as factor

                                                              DDB(cost salvage life period factor) as amortiss period

                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                              67

                                                              Fonction DDB

                                                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                              68

                                                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                              nombres neacutegatifs

                                                              Fonction PMT

                                                              69

                                                              Fonction PMT

                                                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                              Fonction PMT calcul dannuiteacute demprunt

                                                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                              preacutesentevaleur_payeacutee surprime

                                                              -16049 005 20 200000 -320980 -120980

                                                              70

                                                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                              Et les nuls que log ne supporte pas

                                                              Anneacutee relative

                                                              Taux

                                                              1 4

                                                              2 4

                                                              3 3

                                                              4 5

                                                              5 5

                                                              Voir + dans le livre laquo SQL Design Patterns raquo

                                                              71

                                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                              est eacutequivalente agrave

                                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                              WHERE XP = SPP) FROM SP

                                                              Testez

                                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                              72

                                                              LIST Function La requecircte

                                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                              Comme les tabulations croiseacutees

                                                              ndash Mais en + simple

                                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                              ndash En mono attribut (2004)

                                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                              sous-formulaires

                                                              73

                                                              LIST Function

                                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                              74

                                                              GROUP BY avec WHERE

                                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                              75

                                                              GROUP BY

                                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                              Pourquoi

                                                              76

                                                              GROUP BY avec HAVING

                                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                              77

                                                              T-GROUP BY Proposeacute pour SQL

                                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                              Le rocircle de -join par rapport agrave equi-join

                                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                              INT(AVG(QTY)) AS QTY2FROM SP

                                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                              78

                                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                              FROM SP Vrai ou Faux

                                                              79

                                                              T-GROUP BY

                                                              Reacutesultat

                                                              part avg_qty_other_parts part_avg_qty

                                                              p1 250 300

                                                              p2 262 250

                                                              p3 245 400

                                                              p4 260 250

                                                              p5 260 250

                                                              p6 272 100

                                                              80

                                                              T-GROUP BY

                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                              81

                                                              Rangs Non-Denses(Non Dense Ranking)

                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                              s p qtyND-rank

                                                              s4 p5 400 1

                                                              s3 p2 400 1

                                                              s1 p3 400 1

                                                              s4 p4 300 4

                                                              s2 p2 300 4

                                                              s1 p1 300 4

                                                              s4 p2 200 7

                                                              s1 p4 200 7

                                                              s1 p2 200 7

                                                              s4 p1 200 7

                                                              s1 p6 100 11

                                                              s1 p5 100 11

                                                              82

                                                              Rangs Non-Denses(Graphique MsAccess)

                                                              s p qty ND-rank

                                                              s4 p5 400 1

                                                              s3 p2 400 1

                                                              s1 p3 400 1

                                                              s4 p4 300 4

                                                              s2 p2 300 4

                                                              s1 p1 300 4

                                                              s4 p2 200 7

                                                              s1 p4 200 7

                                                              s1 p2 200 7

                                                              s4 p1 200 7

                                                              s1 p6 100 11

                                                              s1 p5 100 11

                                                              83

                                                              Rangs Denses(Dense Ranking)

                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                              s p qtyD-rank

                                                              s1 p3 400 1

                                                              s3 p2 400 1

                                                              s4 p5 400 1

                                                              s1 p1 300 2

                                                              s2 p2 300 2

                                                              s4 p4 300 2

                                                              s1 p4 200 3

                                                              s1 p2 200 3

                                                              s4 p2 200 3

                                                              s4 p1 200 3

                                                              s1 p6 100 4

                                                              s1 p5 100 4

                                                              84

                                                              Rangs DensesGraphique MsAccess

                                                              s p qty D-rank

                                                              s1 p3 400 1

                                                              s3 p2 400 1

                                                              s4 p5 400 1

                                                              s1 p1 300 2

                                                              s2 p2 300 2

                                                              s4 p4 300 2

                                                              s1 p4 200 3

                                                              s1 p2 200 3

                                                              s4 p2 200 3

                                                              s4 p1 200 3

                                                              s1 p6 100 4

                                                              s1 p5 100 4

                                                              85

                                                              Distribution

                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                              86

                                                              Reacutesultat

                                                              s Distribution

                                                              s1 0419

                                                              s2 0097

                                                              s3 0129

                                                              s4 0355

                                                              87

                                                              Distribution Cumulative

                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                              FROM SP

                                                              ORDER BY SP[s]

                                                              88

                                                              Reacutesultat

                                                              sDistribution Cumuleacutee

                                                              s1 0419

                                                              s2 0516

                                                              s3 0645

                                                              s4 1

                                                              89

                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                              90

                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                              FROM S

                                                              GROUP BY S[S] SSName SStatus SCity

                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                              s1 Smith Paris good good

                                                              s2 Jones 100 london good VGood

                                                              s3 Blake 30 Paris good good

                                                              s4 Clark 10 london OK OK

                                                              s5 Adams 30 Athens good good

                                                              bull Notez le traitement du null

                                                              91

                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                              SELECT Ppname weight Very Heavy as Warning

                                                              FROM P where weight gt 13

                                                              union

                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                              UNION

                                                              select Ppname weight Light as warn from p where weight lt 10

                                                              ORDER BY warning DESC weight DESC

                                                              pname weight Warning

                                                              cam 19 Very Heavy

                                                              cog 19 Very Heavy

                                                              bolt 17 Very Heavy

                                                              nut 14 Very Heavy

                                                              screw 14 Very Heavy

                                                              nut 14 Quite Heavy

                                                              screw 14 Quite Heavy

                                                              screw 12 Quite Heavy

                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                              92

                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                              On considegravere AVG(Qty1) pour Qty

                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                              SP

                                                              s p qtyQty1

                                                              s1 p1 300 400

                                                              s1 p2 200

                                                              s1 p3 400 600

                                                              s1 p4 200 300

                                                              s1 p5 100

                                                              s1 p6 100 200

                                                              s2 p2 300 500

                                                              s3 p2 400

                                                              s4 p1 200 100

                                                              s4 p2 200

                                                              s4 p4 300

                                                              s4 p5 400

                                                              93

                                                              UNIONPreacutediction de Valeurs Inconnues

                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                              SP

                                                              s p qtyQty1

                                                              s1 p1 300 400

                                                              s1 p2 200

                                                              s1 p3 400 600

                                                              s1 p4 200 300

                                                              s1 p5 100

                                                              s1 p6 100 200

                                                              s2 p2 300 500

                                                              s3 p2 400

                                                              s4 p1 200 100

                                                              s4 p2 200

                                                              s4 p4 300

                                                              s4 p5 400

                                                              qty for partpredicted or

                                                              unknown Qty1

                                                              100 p5

                                                              100 predicted value 200

                                                              200 p2

                                                              200 predicted value 200

                                                              300 p4

                                                              300 predicted value 450

                                                              400 p2

                                                              400 p5

                                                              400 predicted value 600

                                                              94

                                                              Tendance

                                                              qty Qty1

                                                              100 200

                                                              200 300

                                                              300 400

                                                              400 600

                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                              Graph 3D avec Qty en abscisses

                                                              95

                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                              30102008 120 27102008 4

                                                              25102008 131 22102008 4

                                                              23102008 127 20102008 4

                                                              17102008 269 14102008 4

                                                              15102008 60 12102008 4

                                                              11102008 295 08102008 4

                                                              09102008 340 06102008 4

                                                              08102008 324 05102008 4

                                                              06102008 315 03102008 4

                                                              96

                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                              Graphique avec une info-bulle

                                                              97

                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                              glissantes

                                                              bull CSUM (Cumulative (Running) Sums)

                                                              bull MAVG

                                                              bull MSUM

                                                              bull MDIFF

                                                              bull Voir Teradata + loin

                                                              98

                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                              99

                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                              Entiers est une table aux avec la colonne de12hellip10

                                                              100

                                                              Seacuteries financiegraveres

                                                              capital taux nval apregraves n ans

                                                              taux1val1 apregraves n ans

                                                              GainAbs GainRel

                                                              100 005 1 105 006 106 1 1

                                                              100 005 2 110 006 112 2 2

                                                              100 005 3 115 006 119 4 4

                                                              100 005 4 121 006 126 5 5

                                                              100 005 5 127 006 133 6 6

                                                              100 005 6 134 006 141 7 7

                                                              100 005 7 140 006 150 10 10

                                                              100 005 8 147 006 159 12 12

                                                              100 005 9 155 006 168 13 13

                                                              100 005 10 162 006 179 17 17

                                                              100 005 11 171 006 189 18 18

                                                              100 005 12 179 006 201 22 22

                                                              100 005 13 188 006 213 25 25

                                                              100 005 14 197 006 226 29 29

                                                              100 005 15 207 006 239 32 32

                                                              100 005 16 218 006 254 36 36

                                                              100 005 17 229 006 269 40 40

                                                              100 005 18 240 006 285 45 45

                                                              100 005 19 252 006 302 50 50

                                                              100 005 20 265 006 320 55 55

                                                              101

                                                              Seacuteries financiegraveres

                                                              102

                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                              financiers de la table Produits

                                                              bull Dans la limite L de la somme donneacutee

                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                              bull En ordre descendant de prix

                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                              bull Plusieurs actionshellip

                                                              103

                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                              P prix

                                                              p3 200

                                                              p1 200

                                                              p2 400

                                                              p3 200

                                                              p4 100

                                                              p6 100

                                                              p5 300

                                                              p8 300

                                                              p7 400

                                                              p10 200

                                                              p12 300

                                                              p13 300

                                                              104

                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                              ORDER BY 4 desc 8 123

                                                              105

                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                              106

                                                              Creacuteation drsquoun Portefeuille Discussion

                                                              Creacuteation drsquoun Portefeuille Discussion

                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                              107

                                                              Creacuteation drsquoun Portefeuille Discussion

                                                              Creacuteation drsquoun Portefeuille Discussion

                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                              108

                                                              ROLLUP(DB2 amp SQL-Server)

                                                              ROLLUP(DB2 amp SQL-Server)

                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                              109

                                                              CUBE(DB2 amp SQL-Server)

                                                              CUBE(DB2 amp SQL-Server)

                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                              110

                                                              GROUPING SETS

                                                              On indique explicitement les groupesndash entre ()

                                                              le groupe () est constitueacute de toute la table

                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                              WHERE SP P = PP AND SP S = SS

                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                              HAVING tot-qty gt 100

                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                              111

                                                              Rollup Cube Grouping Setssous MsAccess

                                                              Il y en a pas On peut simuler ces manipulations en

                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                              Peut ecirctre laborieux pour le CUBE

                                                              112

                                                              ROLLUP

                                                              Remarquez le laquo null as cityraquo

                                                              113

                                                              ROLLUP

                                                              114

                                                              ROLLUP

                                                              Et le CUBE

                                                              Une solution pour l ambiguiumlteacute

                                                              de certains nuls

                                                              115

                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                              Wiley (publ)

                                                              116

                                                              Sous-Tables Parameacutetreacutees

                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                              117

                                                              Sous-Tables Parameacutetreacutees

                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                              118

                                                              Sous-Tables Parameacutetreacutees

                                                              119

                                                              Sous-Tables Parameacutetreacutees

                                                              120

                                                              Sous-Tables Parameacutetreacutees

                                                              121

                                                              Sous-Tables Parameacutetreacutees

                                                              122

                                                              Sous-Tables Parameacutetreacutees

                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                              123

                                                              Sous-Tables Parameacutetreacutees

                                                              Exeacutecution autonome

                                                              124

                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                              hellip

                                                              125

                                                              Liste de Choix Multibase

                                                              bull Requecircte Test-liste-de-choix mdb

                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                              126

                                                              Liste de Choix MultibaseReacutesultat

                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                              Tregraves bonne question agrave Microsoft

                                                              148

                                                              FIN

                                                              149

                                                              • SQL Avanceacute 2010
                                                              • Quoi amp Pourquoi
                                                              • Slide 3
                                                              • Synonymes
                                                              • Noms dattributs
                                                              • Slide 6
                                                              • Slide 7
                                                              • Slide 8
                                                              • Insertion dans une Vue
                                                              • Insertion dans une Vue (2)
                                                              • MAJ drsquoune Vue MsAccess
                                                              • MAJ drsquoune Vue MsAccess (2)
                                                              • Suppression dans une Vue MsAccess
                                                              • MsAccess Leacutegendes
                                                              • Expressions de valeur
                                                              • Expressions de valeur (2)
                                                              • Pour en savoir + sur les attributs dynamiques
                                                              • UNION et Noms Drsquoattributs
                                                              • UNION et ORDER BY
                                                              • ORDER BY et expressions de valeur
                                                              • ORDER BY et expressions de valeur (2)
                                                              • Ordre de prioriteacute dopeacuterations
                                                              • Preacutedicat TOP
                                                              • Preacutedicat TOP (2)
                                                              • Clause BETWEEN
                                                              • Limitations de NOT
                                                              • ANY et ALL
                                                              • Injection SQL
                                                              • Injection SQL (2)
                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                              • Tabulations Croiseacutees
                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                              • Tabulations Croiseacutees (2)
                                                              • Tabulations Croiseacutees (3)
                                                              • Tabulations Croiseacutees (4)
                                                              • Tabulations Croiseacutees (5)
                                                              • XOR
                                                              • IMP
                                                              • Sous-requecirctes
                                                              • Sous-requecirctes (2)
                                                              • Sous-requecirctes (3)
                                                              • Sous-requecirctes (4)
                                                              • Sous-requecirctes (5)
                                                              • Sous-requecirctes (6)
                                                              • Sous-requecirctes (7)
                                                              • Application aux Probabiliteacutes
                                                              • Clause FROM imbriqueacutee
                                                              • Clause FROM imbriqueacutee (2)
                                                              • Clause FROM imbriqueacutee (3)
                                                              • Clause FROM imbriqueacutee (4)
                                                              • Clause FROM imbriqueacutee (5)
                                                              • Clause FROM imbriqueacutee (6)
                                                              • Valeurs nulles
                                                              • Valeurs nulles (2)
                                                              • Valeurs nulles (3)
                                                              • Valeurs nulles (4)
                                                              • Fonctions Scalaires DateTemps
                                                              • Fonctions Scalaires DateTemps (2)
                                                              • Fonctions Scalaires DateTemps (3)
                                                              • Fonctions Scalaires DateTemps (4)
                                                              • Fonctions Scalaires DateTemps (5)
                                                              • Fonction Scalaire RND
                                                              • Fonction Scalaire RND (2)
                                                              • Fonctions Financiegraveres
                                                              • Fonctions Financiegraveres (2)
                                                              • Fonction DDB
                                                              • Fonction DDB (2)
                                                              • Fonction PMT
                                                              • Fonction PMT (2)
                                                              • Placement agrave taux variable
                                                              • GROUP BY
                                                              • LIST Function
                                                              • LIST Function (2)
                                                              • GROUP BY avec WHERE
                                                              • GROUP BY (2)
                                                              • GROUP BY avec HAVING
                                                              • T-GROUP BY
                                                              • T-GROUP BY (2)
                                                              • T-GROUP BY (3)
                                                              • T-GROUP BY (4)
                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                              • Rangs Denses (Dense Ranking)
                                                              • Rangs Denses Graphique MsAccess
                                                              • Distribution
                                                              • Reacutesultat
                                                              • Distribution Cumulative
                                                              • Reacutesultat (2)
                                                              • Cateacutegorisation
                                                              • Cateacutegorisation (2)
                                                              • Cateacutegorisation (3)
                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                              • UNION Preacutediction de Valeurs Inconnues
                                                              • Tendance
                                                              • Moyenne Glissante
                                                              • Moyenne Glissante (2)
                                                              • Moyenne Glissante (3)
                                                              • Seacuteries financiegraveres
                                                              • Seacuteries financiegraveres (2)
                                                              • Seacuteries financiegraveres (3)
                                                              • Seacuteries financiegraveres (4)
                                                              • Creacuteation drsquoun Portefeuille
                                                              • Creacuteation drsquoun Portefeuille (2)
                                                              • Creacuteation drsquoun Portefeuille (3)
                                                              • Creacuteation drsquoun Portefeuille (4)
                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                              • ROLLUP (DB2 amp SQL-Server)
                                                              • CUBE (DB2 amp SQL-Server)
                                                              • GROUPING SETS
                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                              • Slide 112
                                                              • Slide 113
                                                              • Slide 114
                                                              • Autres Opeacuterations Utiles
                                                              • Sous-Tables Parameacutetreacutees
                                                              • Sous-Tables Parameacutetreacutees (2)
                                                              • Sous-Tables Parameacutetreacutees (3)
                                                              • Sous-Tables Parameacutetreacutees (4)
                                                              • Sous-Tables Parameacutetreacutees (5)
                                                              • Sous-Tables Parameacutetreacutees (6)
                                                              • Sous-Tables Parameacutetreacutees (7)
                                                              • Sous-Tables Parameacutetreacutees (8)
                                                              • Liste de Choix Multibase
                                                              • Liste de Choix Multibase (2)
                                                              • Liste de Choix Multibase Reacutesultat
                                                              • FIN
                                                              • Slide 149

                                                                32

                                                                Tabulations Croiseacutees(Crosstab queries Pivot Queries)

                                                                Transforment les valeurs dattributs en attributsndash Par exemple

                                                                les valeurs de P trouveacutes pour un mecircme S deviennent les attributs P1 P2

                                                                les valeurs de P1 P2 sont les QTY (par ex) correspondants

                                                                33

                                                                S Total Qty p1 p2 p3 p4 p5 p6

                                                                s1 1300 300 200 400 200 100 100

                                                                s2 700 300 400

                                                                s3 200 200

                                                                s4 900 200 300 400

                                                                Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                                Tabulations Croiseacutees

                                                                34

                                                                TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                                Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                Tabulations Croiseacutees

                                                                Nouvellescolonnes

                                                                35

                                                                La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                                On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                Tabulations Croiseacutees

                                                                36

                                                                On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                                Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                                On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                                Mais cette clause naffecte pas les calculs des agreacutegats

                                                                Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                                Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                                Tabulations Croiseacutees

                                                                37

                                                                XORSELECT S[S] SStatus SCity

                                                                FROM S

                                                                WHERE Status=10 Xor city=paris

                                                                bull A noter le traitement du nul dans City

                                                                38

                                                                IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                bull A noter le traitement du nul dans City

                                                                39

                                                                Sous-requecirctes

                                                                A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                sous-requecircte

                                                                SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                40

                                                                Sous-requecirctes

                                                                Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                plus grande

                                                                41

                                                                Sous-requecirctes

                                                                Skylinendash Tout objet non-domineacute (cacheacute

                                                                totalement) par un autre

                                                                SELECT X[s] X[p] qty delay

                                                                FROM SP X

                                                                where not exists

                                                                (select from SP as Y

                                                                where (Yqty gt= XQty and YDelay lt XDelay or

                                                                Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                order by X[p]

                                                                42

                                                                Sous-requecirctes Reacutesultat

                                                                s p qty delay

                                                                s1 p1 300 15

                                                                s4 p1 200 13

                                                                s3 p2 400 15

                                                                s2 p2 300 12

                                                                s1 p3 400 17

                                                                s4 p4 300 11

                                                                s4 p5 400 7

                                                                s1 p6 100 8

                                                                s p qty Delay

                                                                s1 p1 300 15

                                                                s1 p2 200 12

                                                                s1 p3 400 17

                                                                s1 p4 200 11

                                                                s1 p5 100 7

                                                                s1 p6 100 8

                                                                s2 p2 300 12

                                                                s3 p2 400 15

                                                                s4 p1 200 13

                                                                s4 p2 200 15

                                                                s4 p4 300 11

                                                                s4 p5 400 7

                                                                S

                                                                43

                                                                Sous-requecirctes

                                                                On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                SELECT Count() AS TotalQty

                                                                FROM (select distinct qty from sp)

                                                                On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                SELECT SP[s] SP[p] qty

                                                                (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                round(qtyTotalQty 3) AS Fraction

                                                                FROM SP order by [s]

                                                                44

                                                                Sous-requecirctes

                                                                s p qty TotalQty Fraction

                                                                s1 p1 300 1300 0231

                                                                s1 p6 100 1300 0077

                                                                s1 p5 100 1300 0077

                                                                s1 p4 200 1300 0154

                                                                s1 p3 400 1300 0308

                                                                s1 p2 200 1300 0154

                                                                s2 p2 300 300 1

                                                                s3 p2 400 400 1

                                                                s4 p5 400 1100 0364

                                                                s4 p4 300 1100 0273

                                                                s4 p2 200 1100 0182

                                                                bull ReacutesultatSP

                                                                s p qty

                                                                s1 p1 300

                                                                s1 p2 200

                                                                s1 p3 400

                                                                s1 p4 200

                                                                s1 p5 100

                                                                s1 p6 100

                                                                s2 p2 300

                                                                s3 p2 400

                                                                s4 p1 200

                                                                s4 p2 200

                                                                s4 p4 300

                                                                s4 p5 400

                                                                45

                                                                Sous-requecirctesbull En Mode Graphique

                                                                s p qtyTotalQty

                                                                Fraction

                                                                s1 p1 300 1300 0231

                                                                s1 p6 100 1300 0077

                                                                s1 p5 100 1300 0077

                                                                s1 p4 200 1300 0154

                                                                s1 p3 400 1300 0308

                                                                s1 p2 200 1300 0154

                                                                s2 p2 300 300 1

                                                                s3 p2 400 400 1

                                                                s4 p5 400 1100 0364

                                                                s4 p4 300 1100 0273

                                                                s4 p2 200 1100 0182

                                                                46

                                                                Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                SELECT (select count(qty) from SP

                                                                where qty gt= [seuil svp ]) count() as reacutesultat

                                                                FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                probabiliteacute conditionnelle

                                                                47

                                                                Clause FROM imbriqueacutee

                                                                Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                Agrave essayer

                                                                48

                                                                Clause FROM imbriqueacuteePossibiliteacutes

                                                                ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                MsAccess

                                                                ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                Mais la reacutefeacuterence au nom de la requecircte OK

                                                                49

                                                                Clause FROM imbriqueacutee

                                                                SELECT sum(weight) AS [poids-total]

                                                                FROM (SELECT weight pcity FROM P WHERE City like l

                                                                UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                50

                                                                Clause FROM imbriqueacutee

                                                                select avg(moy1) as [moyenne-des-moyennes]

                                                                FROM

                                                                (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                51

                                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                52

                                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                totaux partiels et total geacuteneacuteral

                                                                total_Id TotalQty

                                                                s1 1300

                                                                s2 300

                                                                s3 400

                                                                s4 400

                                                                total Geacuteneacuteral

                                                                2400

                                                                53

                                                                Valeurs nulles

                                                                Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                Non WHERE HAVING GROUP BY (rel 1)

                                                                Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                MsAccess Oui DISTINCT Autres clauses

                                                                54

                                                                Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                1 x gt y est vrai ou faux

                                                                2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                SELECT FROM S WHERE CITY =Paris

                                                                UNION

                                                                SELECT FROM S WHERE NOT CITY = Paris

                                                                est toujours pourquoi faire simpleSELECT FROM S

                                                                si on peut faire compliqueacute

                                                                55

                                                                Valeurs nullesValeurs nulles

                                                                SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                56

                                                                Valeurs nulles

                                                                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                LOG (nul) -gt Error A voir cas par cas

                                                                57

                                                                Fonctions Scalaires DateTemps

                                                                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                58

                                                                Fonctions Scalaires DateTemps

                                                                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                weekday(day(now())-1) AS [day]FROM S

                                                                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                59

                                                                Fonctions Scalaires DateTemps

                                                                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                Interval Explanation

                                                                Yyyy Year

                                                                q Quarter

                                                                m Month

                                                                y Day of year

                                                                d Day

                                                                w Weekday

                                                                ww Week

                                                                h Hour

                                                                n Minute

                                                                s Second

                                                                60

                                                                Fonctions Scalaires DateTemps

                                                                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                Test DateDiff

                                                                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                61

                                                                Fonctions Scalaires DateTemps

                                                                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                62

                                                                Fonction Scalaire RND

                                                                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                FROM SPORDER BY rnd(qty) DESC

                                                                echantillon s rank

                                                                s1 502628087997437E-02

                                                                s4 0518015921115875

                                                                s3 075702953338623

                                                                63

                                                                Fonction Scalaire RND

                                                                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                FROM SPORDER BY rnd(qty) DESC

                                                                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                Votre commentaire ici

                                                                64

                                                                Fonctions Financiegraveres

                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                65

                                                                Fonctions Financiegraveres

                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                66

                                                                Fonction DDB

                                                                insert into DDB (cost salvage life factor amortiss period)

                                                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                DDB(cost salvage life period factor) as amortiss period

                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                67

                                                                Fonction DDB

                                                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                68

                                                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                nombres neacutegatifs

                                                                Fonction PMT

                                                                69

                                                                Fonction PMT

                                                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                Fonction PMT calcul dannuiteacute demprunt

                                                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                preacutesentevaleur_payeacutee surprime

                                                                -16049 005 20 200000 -320980 -120980

                                                                70

                                                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                Et les nuls que log ne supporte pas

                                                                Anneacutee relative

                                                                Taux

                                                                1 4

                                                                2 4

                                                                3 3

                                                                4 5

                                                                5 5

                                                                Voir + dans le livre laquo SQL Design Patterns raquo

                                                                71

                                                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                est eacutequivalente agrave

                                                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                WHERE XP = SPP) FROM SP

                                                                Testez

                                                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                72

                                                                LIST Function La requecircte

                                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                Comme les tabulations croiseacutees

                                                                ndash Mais en + simple

                                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                ndash En mono attribut (2004)

                                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                sous-formulaires

                                                                73

                                                                LIST Function

                                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                74

                                                                GROUP BY avec WHERE

                                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                75

                                                                GROUP BY

                                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                Pourquoi

                                                                76

                                                                GROUP BY avec HAVING

                                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                77

                                                                T-GROUP BY Proposeacute pour SQL

                                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                Le rocircle de -join par rapport agrave equi-join

                                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                78

                                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                FROM SP Vrai ou Faux

                                                                79

                                                                T-GROUP BY

                                                                Reacutesultat

                                                                part avg_qty_other_parts part_avg_qty

                                                                p1 250 300

                                                                p2 262 250

                                                                p3 245 400

                                                                p4 260 250

                                                                p5 260 250

                                                                p6 272 100

                                                                80

                                                                T-GROUP BY

                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                81

                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                s p qtyND-rank

                                                                s4 p5 400 1

                                                                s3 p2 400 1

                                                                s1 p3 400 1

                                                                s4 p4 300 4

                                                                s2 p2 300 4

                                                                s1 p1 300 4

                                                                s4 p2 200 7

                                                                s1 p4 200 7

                                                                s1 p2 200 7

                                                                s4 p1 200 7

                                                                s1 p6 100 11

                                                                s1 p5 100 11

                                                                82

                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                s p qty ND-rank

                                                                s4 p5 400 1

                                                                s3 p2 400 1

                                                                s1 p3 400 1

                                                                s4 p4 300 4

                                                                s2 p2 300 4

                                                                s1 p1 300 4

                                                                s4 p2 200 7

                                                                s1 p4 200 7

                                                                s1 p2 200 7

                                                                s4 p1 200 7

                                                                s1 p6 100 11

                                                                s1 p5 100 11

                                                                83

                                                                Rangs Denses(Dense Ranking)

                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                s p qtyD-rank

                                                                s1 p3 400 1

                                                                s3 p2 400 1

                                                                s4 p5 400 1

                                                                s1 p1 300 2

                                                                s2 p2 300 2

                                                                s4 p4 300 2

                                                                s1 p4 200 3

                                                                s1 p2 200 3

                                                                s4 p2 200 3

                                                                s4 p1 200 3

                                                                s1 p6 100 4

                                                                s1 p5 100 4

                                                                84

                                                                Rangs DensesGraphique MsAccess

                                                                s p qty D-rank

                                                                s1 p3 400 1

                                                                s3 p2 400 1

                                                                s4 p5 400 1

                                                                s1 p1 300 2

                                                                s2 p2 300 2

                                                                s4 p4 300 2

                                                                s1 p4 200 3

                                                                s1 p2 200 3

                                                                s4 p2 200 3

                                                                s4 p1 200 3

                                                                s1 p6 100 4

                                                                s1 p5 100 4

                                                                85

                                                                Distribution

                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                86

                                                                Reacutesultat

                                                                s Distribution

                                                                s1 0419

                                                                s2 0097

                                                                s3 0129

                                                                s4 0355

                                                                87

                                                                Distribution Cumulative

                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                FROM SP

                                                                ORDER BY SP[s]

                                                                88

                                                                Reacutesultat

                                                                sDistribution Cumuleacutee

                                                                s1 0419

                                                                s2 0516

                                                                s3 0645

                                                                s4 1

                                                                89

                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                90

                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                FROM S

                                                                GROUP BY S[S] SSName SStatus SCity

                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                s1 Smith Paris good good

                                                                s2 Jones 100 london good VGood

                                                                s3 Blake 30 Paris good good

                                                                s4 Clark 10 london OK OK

                                                                s5 Adams 30 Athens good good

                                                                bull Notez le traitement du null

                                                                91

                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                SELECT Ppname weight Very Heavy as Warning

                                                                FROM P where weight gt 13

                                                                union

                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                UNION

                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                ORDER BY warning DESC weight DESC

                                                                pname weight Warning

                                                                cam 19 Very Heavy

                                                                cog 19 Very Heavy

                                                                bolt 17 Very Heavy

                                                                nut 14 Very Heavy

                                                                screw 14 Very Heavy

                                                                nut 14 Quite Heavy

                                                                screw 14 Quite Heavy

                                                                screw 12 Quite Heavy

                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                92

                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                On considegravere AVG(Qty1) pour Qty

                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                SP

                                                                s p qtyQty1

                                                                s1 p1 300 400

                                                                s1 p2 200

                                                                s1 p3 400 600

                                                                s1 p4 200 300

                                                                s1 p5 100

                                                                s1 p6 100 200

                                                                s2 p2 300 500

                                                                s3 p2 400

                                                                s4 p1 200 100

                                                                s4 p2 200

                                                                s4 p4 300

                                                                s4 p5 400

                                                                93

                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                SP

                                                                s p qtyQty1

                                                                s1 p1 300 400

                                                                s1 p2 200

                                                                s1 p3 400 600

                                                                s1 p4 200 300

                                                                s1 p5 100

                                                                s1 p6 100 200

                                                                s2 p2 300 500

                                                                s3 p2 400

                                                                s4 p1 200 100

                                                                s4 p2 200

                                                                s4 p4 300

                                                                s4 p5 400

                                                                qty for partpredicted or

                                                                unknown Qty1

                                                                100 p5

                                                                100 predicted value 200

                                                                200 p2

                                                                200 predicted value 200

                                                                300 p4

                                                                300 predicted value 450

                                                                400 p2

                                                                400 p5

                                                                400 predicted value 600

                                                                94

                                                                Tendance

                                                                qty Qty1

                                                                100 200

                                                                200 300

                                                                300 400

                                                                400 600

                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                Graph 3D avec Qty en abscisses

                                                                95

                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                30102008 120 27102008 4

                                                                25102008 131 22102008 4

                                                                23102008 127 20102008 4

                                                                17102008 269 14102008 4

                                                                15102008 60 12102008 4

                                                                11102008 295 08102008 4

                                                                09102008 340 06102008 4

                                                                08102008 324 05102008 4

                                                                06102008 315 03102008 4

                                                                96

                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                Graphique avec une info-bulle

                                                                97

                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                glissantes

                                                                bull CSUM (Cumulative (Running) Sums)

                                                                bull MAVG

                                                                bull MSUM

                                                                bull MDIFF

                                                                bull Voir Teradata + loin

                                                                98

                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                99

                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                100

                                                                Seacuteries financiegraveres

                                                                capital taux nval apregraves n ans

                                                                taux1val1 apregraves n ans

                                                                GainAbs GainRel

                                                                100 005 1 105 006 106 1 1

                                                                100 005 2 110 006 112 2 2

                                                                100 005 3 115 006 119 4 4

                                                                100 005 4 121 006 126 5 5

                                                                100 005 5 127 006 133 6 6

                                                                100 005 6 134 006 141 7 7

                                                                100 005 7 140 006 150 10 10

                                                                100 005 8 147 006 159 12 12

                                                                100 005 9 155 006 168 13 13

                                                                100 005 10 162 006 179 17 17

                                                                100 005 11 171 006 189 18 18

                                                                100 005 12 179 006 201 22 22

                                                                100 005 13 188 006 213 25 25

                                                                100 005 14 197 006 226 29 29

                                                                100 005 15 207 006 239 32 32

                                                                100 005 16 218 006 254 36 36

                                                                100 005 17 229 006 269 40 40

                                                                100 005 18 240 006 285 45 45

                                                                100 005 19 252 006 302 50 50

                                                                100 005 20 265 006 320 55 55

                                                                101

                                                                Seacuteries financiegraveres

                                                                102

                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                financiers de la table Produits

                                                                bull Dans la limite L de la somme donneacutee

                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                bull En ordre descendant de prix

                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                bull Plusieurs actionshellip

                                                                103

                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                P prix

                                                                p3 200

                                                                p1 200

                                                                p2 400

                                                                p3 200

                                                                p4 100

                                                                p6 100

                                                                p5 300

                                                                p8 300

                                                                p7 400

                                                                p10 200

                                                                p12 300

                                                                p13 300

                                                                104

                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                ORDER BY 4 desc 8 123

                                                                105

                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                106

                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                107

                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                108

                                                                ROLLUP(DB2 amp SQL-Server)

                                                                ROLLUP(DB2 amp SQL-Server)

                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                109

                                                                CUBE(DB2 amp SQL-Server)

                                                                CUBE(DB2 amp SQL-Server)

                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                110

                                                                GROUPING SETS

                                                                On indique explicitement les groupesndash entre ()

                                                                le groupe () est constitueacute de toute la table

                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                WHERE SP P = PP AND SP S = SS

                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                HAVING tot-qty gt 100

                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                111

                                                                Rollup Cube Grouping Setssous MsAccess

                                                                Il y en a pas On peut simuler ces manipulations en

                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                Peut ecirctre laborieux pour le CUBE

                                                                112

                                                                ROLLUP

                                                                Remarquez le laquo null as cityraquo

                                                                113

                                                                ROLLUP

                                                                114

                                                                ROLLUP

                                                                Et le CUBE

                                                                Une solution pour l ambiguiumlteacute

                                                                de certains nuls

                                                                115

                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                Wiley (publ)

                                                                116

                                                                Sous-Tables Parameacutetreacutees

                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                117

                                                                Sous-Tables Parameacutetreacutees

                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                118

                                                                Sous-Tables Parameacutetreacutees

                                                                119

                                                                Sous-Tables Parameacutetreacutees

                                                                120

                                                                Sous-Tables Parameacutetreacutees

                                                                121

                                                                Sous-Tables Parameacutetreacutees

                                                                122

                                                                Sous-Tables Parameacutetreacutees

                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                123

                                                                Sous-Tables Parameacutetreacutees

                                                                Exeacutecution autonome

                                                                124

                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                hellip

                                                                125

                                                                Liste de Choix Multibase

                                                                bull Requecircte Test-liste-de-choix mdb

                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                126

                                                                Liste de Choix MultibaseReacutesultat

                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                Tregraves bonne question agrave Microsoft

                                                                148

                                                                FIN

                                                                149

                                                                • SQL Avanceacute 2010
                                                                • Quoi amp Pourquoi
                                                                • Slide 3
                                                                • Synonymes
                                                                • Noms dattributs
                                                                • Slide 6
                                                                • Slide 7
                                                                • Slide 8
                                                                • Insertion dans une Vue
                                                                • Insertion dans une Vue (2)
                                                                • MAJ drsquoune Vue MsAccess
                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                • Suppression dans une Vue MsAccess
                                                                • MsAccess Leacutegendes
                                                                • Expressions de valeur
                                                                • Expressions de valeur (2)
                                                                • Pour en savoir + sur les attributs dynamiques
                                                                • UNION et Noms Drsquoattributs
                                                                • UNION et ORDER BY
                                                                • ORDER BY et expressions de valeur
                                                                • ORDER BY et expressions de valeur (2)
                                                                • Ordre de prioriteacute dopeacuterations
                                                                • Preacutedicat TOP
                                                                • Preacutedicat TOP (2)
                                                                • Clause BETWEEN
                                                                • Limitations de NOT
                                                                • ANY et ALL
                                                                • Injection SQL
                                                                • Injection SQL (2)
                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                • Tabulations Croiseacutees
                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                • Tabulations Croiseacutees (2)
                                                                • Tabulations Croiseacutees (3)
                                                                • Tabulations Croiseacutees (4)
                                                                • Tabulations Croiseacutees (5)
                                                                • XOR
                                                                • IMP
                                                                • Sous-requecirctes
                                                                • Sous-requecirctes (2)
                                                                • Sous-requecirctes (3)
                                                                • Sous-requecirctes (4)
                                                                • Sous-requecirctes (5)
                                                                • Sous-requecirctes (6)
                                                                • Sous-requecirctes (7)
                                                                • Application aux Probabiliteacutes
                                                                • Clause FROM imbriqueacutee
                                                                • Clause FROM imbriqueacutee (2)
                                                                • Clause FROM imbriqueacutee (3)
                                                                • Clause FROM imbriqueacutee (4)
                                                                • Clause FROM imbriqueacutee (5)
                                                                • Clause FROM imbriqueacutee (6)
                                                                • Valeurs nulles
                                                                • Valeurs nulles (2)
                                                                • Valeurs nulles (3)
                                                                • Valeurs nulles (4)
                                                                • Fonctions Scalaires DateTemps
                                                                • Fonctions Scalaires DateTemps (2)
                                                                • Fonctions Scalaires DateTemps (3)
                                                                • Fonctions Scalaires DateTemps (4)
                                                                • Fonctions Scalaires DateTemps (5)
                                                                • Fonction Scalaire RND
                                                                • Fonction Scalaire RND (2)
                                                                • Fonctions Financiegraveres
                                                                • Fonctions Financiegraveres (2)
                                                                • Fonction DDB
                                                                • Fonction DDB (2)
                                                                • Fonction PMT
                                                                • Fonction PMT (2)
                                                                • Placement agrave taux variable
                                                                • GROUP BY
                                                                • LIST Function
                                                                • LIST Function (2)
                                                                • GROUP BY avec WHERE
                                                                • GROUP BY (2)
                                                                • GROUP BY avec HAVING
                                                                • T-GROUP BY
                                                                • T-GROUP BY (2)
                                                                • T-GROUP BY (3)
                                                                • T-GROUP BY (4)
                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                • Rangs Denses (Dense Ranking)
                                                                • Rangs Denses Graphique MsAccess
                                                                • Distribution
                                                                • Reacutesultat
                                                                • Distribution Cumulative
                                                                • Reacutesultat (2)
                                                                • Cateacutegorisation
                                                                • Cateacutegorisation (2)
                                                                • Cateacutegorisation (3)
                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                • Tendance
                                                                • Moyenne Glissante
                                                                • Moyenne Glissante (2)
                                                                • Moyenne Glissante (3)
                                                                • Seacuteries financiegraveres
                                                                • Seacuteries financiegraveres (2)
                                                                • Seacuteries financiegraveres (3)
                                                                • Seacuteries financiegraveres (4)
                                                                • Creacuteation drsquoun Portefeuille
                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                • CUBE (DB2 amp SQL-Server)
                                                                • GROUPING SETS
                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                • Slide 112
                                                                • Slide 113
                                                                • Slide 114
                                                                • Autres Opeacuterations Utiles
                                                                • Sous-Tables Parameacutetreacutees
                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                • Liste de Choix Multibase
                                                                • Liste de Choix Multibase (2)
                                                                • Liste de Choix Multibase Reacutesultat
                                                                • FIN
                                                                • Slide 149

                                                                  33

                                                                  S Total Qty p1 p2 p3 p4 p5 p6

                                                                  s1 1300 300 200 400 200 100 100

                                                                  s2 700 300 400

                                                                  s3 200 200

                                                                  s4 900 200 300 400

                                                                  Lintituleacute Total Qty est mis par deacutefaut par MsAccess

                                                                  Tabulations Croiseacutees

                                                                  34

                                                                  TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                                  Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                  Tabulations Croiseacutees

                                                                  Nouvellescolonnes

                                                                  35

                                                                  La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                                  On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                  Tabulations Croiseacutees

                                                                  36

                                                                  On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                                  Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                                  On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                                  Mais cette clause naffecte pas les calculs des agreacutegats

                                                                  Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                                  Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                                  Tabulations Croiseacutees

                                                                  37

                                                                  XORSELECT S[S] SStatus SCity

                                                                  FROM S

                                                                  WHERE Status=10 Xor city=paris

                                                                  bull A noter le traitement du nul dans City

                                                                  38

                                                                  IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                  bull A noter le traitement du nul dans City

                                                                  39

                                                                  Sous-requecirctes

                                                                  A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                  clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                  rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                  sous-requecircte

                                                                  SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                  40

                                                                  Sous-requecirctes

                                                                  Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                  laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                  vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                  plus grande

                                                                  41

                                                                  Sous-requecirctes

                                                                  Skylinendash Tout objet non-domineacute (cacheacute

                                                                  totalement) par un autre

                                                                  SELECT X[s] X[p] qty delay

                                                                  FROM SP X

                                                                  where not exists

                                                                  (select from SP as Y

                                                                  where (Yqty gt= XQty and YDelay lt XDelay or

                                                                  Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                  order by X[p]

                                                                  42

                                                                  Sous-requecirctes Reacutesultat

                                                                  s p qty delay

                                                                  s1 p1 300 15

                                                                  s4 p1 200 13

                                                                  s3 p2 400 15

                                                                  s2 p2 300 12

                                                                  s1 p3 400 17

                                                                  s4 p4 300 11

                                                                  s4 p5 400 7

                                                                  s1 p6 100 8

                                                                  s p qty Delay

                                                                  s1 p1 300 15

                                                                  s1 p2 200 12

                                                                  s1 p3 400 17

                                                                  s1 p4 200 11

                                                                  s1 p5 100 7

                                                                  s1 p6 100 8

                                                                  s2 p2 300 12

                                                                  s3 p2 400 15

                                                                  s4 p1 200 13

                                                                  s4 p2 200 15

                                                                  s4 p4 300 11

                                                                  s4 p5 400 7

                                                                  S

                                                                  43

                                                                  Sous-requecirctes

                                                                  On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                  SELECT Count() AS TotalQty

                                                                  FROM (select distinct qty from sp)

                                                                  On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                  SELECT SP[s] SP[p] qty

                                                                  (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                  round(qtyTotalQty 3) AS Fraction

                                                                  FROM SP order by [s]

                                                                  44

                                                                  Sous-requecirctes

                                                                  s p qty TotalQty Fraction

                                                                  s1 p1 300 1300 0231

                                                                  s1 p6 100 1300 0077

                                                                  s1 p5 100 1300 0077

                                                                  s1 p4 200 1300 0154

                                                                  s1 p3 400 1300 0308

                                                                  s1 p2 200 1300 0154

                                                                  s2 p2 300 300 1

                                                                  s3 p2 400 400 1

                                                                  s4 p5 400 1100 0364

                                                                  s4 p4 300 1100 0273

                                                                  s4 p2 200 1100 0182

                                                                  bull ReacutesultatSP

                                                                  s p qty

                                                                  s1 p1 300

                                                                  s1 p2 200

                                                                  s1 p3 400

                                                                  s1 p4 200

                                                                  s1 p5 100

                                                                  s1 p6 100

                                                                  s2 p2 300

                                                                  s3 p2 400

                                                                  s4 p1 200

                                                                  s4 p2 200

                                                                  s4 p4 300

                                                                  s4 p5 400

                                                                  45

                                                                  Sous-requecirctesbull En Mode Graphique

                                                                  s p qtyTotalQty

                                                                  Fraction

                                                                  s1 p1 300 1300 0231

                                                                  s1 p6 100 1300 0077

                                                                  s1 p5 100 1300 0077

                                                                  s1 p4 200 1300 0154

                                                                  s1 p3 400 1300 0308

                                                                  s1 p2 200 1300 0154

                                                                  s2 p2 300 300 1

                                                                  s3 p2 400 400 1

                                                                  s4 p5 400 1100 0364

                                                                  s4 p4 300 1100 0273

                                                                  s4 p2 200 1100 0182

                                                                  46

                                                                  Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                  SELECT (select count(qty) from SP

                                                                  where qty gt= [seuil svp ]) count() as reacutesultat

                                                                  FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                  probabiliteacute conditionnelle

                                                                  47

                                                                  Clause FROM imbriqueacutee

                                                                  Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                  Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                  Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                  Agrave essayer

                                                                  48

                                                                  Clause FROM imbriqueacuteePossibiliteacutes

                                                                  ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                  ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                  MsAccess

                                                                  ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                  Mais la reacutefeacuterence au nom de la requecircte OK

                                                                  49

                                                                  Clause FROM imbriqueacutee

                                                                  SELECT sum(weight) AS [poids-total]

                                                                  FROM (SELECT weight pcity FROM P WHERE City like l

                                                                  UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                  50

                                                                  Clause FROM imbriqueacutee

                                                                  select avg(moy1) as [moyenne-des-moyennes]

                                                                  FROM

                                                                  (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                  UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                  51

                                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                  select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                  52

                                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                  totaux partiels et total geacuteneacuteral

                                                                  total_Id TotalQty

                                                                  s1 1300

                                                                  s2 300

                                                                  s3 400

                                                                  s4 400

                                                                  total Geacuteneacuteral

                                                                  2400

                                                                  53

                                                                  Valeurs nulles

                                                                  Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                  En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                  DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                  Non WHERE HAVING GROUP BY (rel 1)

                                                                  Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                  MsAccess Oui DISTINCT Autres clauses

                                                                  54

                                                                  Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                  1 x gt y est vrai ou faux

                                                                  2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                  DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                  SELECT FROM S WHERE CITY =Paris

                                                                  UNION

                                                                  SELECT FROM S WHERE NOT CITY = Paris

                                                                  est toujours pourquoi faire simpleSELECT FROM S

                                                                  si on peut faire compliqueacute

                                                                  55

                                                                  Valeurs nullesValeurs nulles

                                                                  SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                  SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                  Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                  56

                                                                  Valeurs nulles

                                                                  Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                  LOG (nul) -gt Error A voir cas par cas

                                                                  57

                                                                  Fonctions Scalaires DateTemps

                                                                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                  58

                                                                  Fonctions Scalaires DateTemps

                                                                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                  weekday(day(now())-1) AS [day]FROM S

                                                                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                  59

                                                                  Fonctions Scalaires DateTemps

                                                                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                  Interval Explanation

                                                                  Yyyy Year

                                                                  q Quarter

                                                                  m Month

                                                                  y Day of year

                                                                  d Day

                                                                  w Weekday

                                                                  ww Week

                                                                  h Hour

                                                                  n Minute

                                                                  s Second

                                                                  60

                                                                  Fonctions Scalaires DateTemps

                                                                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                  Test DateDiff

                                                                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                  61

                                                                  Fonctions Scalaires DateTemps

                                                                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                  Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                  62

                                                                  Fonction Scalaire RND

                                                                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                  echantillon s rank

                                                                  s1 502628087997437E-02

                                                                  s4 0518015921115875

                                                                  s3 075702953338623

                                                                  63

                                                                  Fonction Scalaire RND

                                                                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                  Votre commentaire ici

                                                                  64

                                                                  Fonctions Financiegraveres

                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                  65

                                                                  Fonctions Financiegraveres

                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                  66

                                                                  Fonction DDB

                                                                  insert into DDB (cost salvage life factor amortiss period)

                                                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                  DDB(cost salvage life period factor) as amortiss period

                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                  67

                                                                  Fonction DDB

                                                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                  68

                                                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                  nombres neacutegatifs

                                                                  Fonction PMT

                                                                  69

                                                                  Fonction PMT

                                                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                  Fonction PMT calcul dannuiteacute demprunt

                                                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                  preacutesentevaleur_payeacutee surprime

                                                                  -16049 005 20 200000 -320980 -120980

                                                                  70

                                                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                  Et les nuls que log ne supporte pas

                                                                  Anneacutee relative

                                                                  Taux

                                                                  1 4

                                                                  2 4

                                                                  3 3

                                                                  4 5

                                                                  5 5

                                                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                                                  71

                                                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                  est eacutequivalente agrave

                                                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                  WHERE XP = SPP) FROM SP

                                                                  Testez

                                                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                  72

                                                                  LIST Function La requecircte

                                                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                  Comme les tabulations croiseacutees

                                                                  ndash Mais en + simple

                                                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                  ndash En mono attribut (2004)

                                                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                  sous-formulaires

                                                                  73

                                                                  LIST Function

                                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                  74

                                                                  GROUP BY avec WHERE

                                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                  75

                                                                  GROUP BY

                                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                  Pourquoi

                                                                  76

                                                                  GROUP BY avec HAVING

                                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                  77

                                                                  T-GROUP BY Proposeacute pour SQL

                                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                  Le rocircle de -join par rapport agrave equi-join

                                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                  78

                                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                  FROM SP Vrai ou Faux

                                                                  79

                                                                  T-GROUP BY

                                                                  Reacutesultat

                                                                  part avg_qty_other_parts part_avg_qty

                                                                  p1 250 300

                                                                  p2 262 250

                                                                  p3 245 400

                                                                  p4 260 250

                                                                  p5 260 250

                                                                  p6 272 100

                                                                  80

                                                                  T-GROUP BY

                                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                  81

                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                  s p qtyND-rank

                                                                  s4 p5 400 1

                                                                  s3 p2 400 1

                                                                  s1 p3 400 1

                                                                  s4 p4 300 4

                                                                  s2 p2 300 4

                                                                  s1 p1 300 4

                                                                  s4 p2 200 7

                                                                  s1 p4 200 7

                                                                  s1 p2 200 7

                                                                  s4 p1 200 7

                                                                  s1 p6 100 11

                                                                  s1 p5 100 11

                                                                  82

                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                  s p qty ND-rank

                                                                  s4 p5 400 1

                                                                  s3 p2 400 1

                                                                  s1 p3 400 1

                                                                  s4 p4 300 4

                                                                  s2 p2 300 4

                                                                  s1 p1 300 4

                                                                  s4 p2 200 7

                                                                  s1 p4 200 7

                                                                  s1 p2 200 7

                                                                  s4 p1 200 7

                                                                  s1 p6 100 11

                                                                  s1 p5 100 11

                                                                  83

                                                                  Rangs Denses(Dense Ranking)

                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                  s p qtyD-rank

                                                                  s1 p3 400 1

                                                                  s3 p2 400 1

                                                                  s4 p5 400 1

                                                                  s1 p1 300 2

                                                                  s2 p2 300 2

                                                                  s4 p4 300 2

                                                                  s1 p4 200 3

                                                                  s1 p2 200 3

                                                                  s4 p2 200 3

                                                                  s4 p1 200 3

                                                                  s1 p6 100 4

                                                                  s1 p5 100 4

                                                                  84

                                                                  Rangs DensesGraphique MsAccess

                                                                  s p qty D-rank

                                                                  s1 p3 400 1

                                                                  s3 p2 400 1

                                                                  s4 p5 400 1

                                                                  s1 p1 300 2

                                                                  s2 p2 300 2

                                                                  s4 p4 300 2

                                                                  s1 p4 200 3

                                                                  s1 p2 200 3

                                                                  s4 p2 200 3

                                                                  s4 p1 200 3

                                                                  s1 p6 100 4

                                                                  s1 p5 100 4

                                                                  85

                                                                  Distribution

                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                  86

                                                                  Reacutesultat

                                                                  s Distribution

                                                                  s1 0419

                                                                  s2 0097

                                                                  s3 0129

                                                                  s4 0355

                                                                  87

                                                                  Distribution Cumulative

                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                  FROM SP

                                                                  ORDER BY SP[s]

                                                                  88

                                                                  Reacutesultat

                                                                  sDistribution Cumuleacutee

                                                                  s1 0419

                                                                  s2 0516

                                                                  s3 0645

                                                                  s4 1

                                                                  89

                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                  90

                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                  FROM S

                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                  s1 Smith Paris good good

                                                                  s2 Jones 100 london good VGood

                                                                  s3 Blake 30 Paris good good

                                                                  s4 Clark 10 london OK OK

                                                                  s5 Adams 30 Athens good good

                                                                  bull Notez le traitement du null

                                                                  91

                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                  FROM P where weight gt 13

                                                                  union

                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                  UNION

                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                  ORDER BY warning DESC weight DESC

                                                                  pname weight Warning

                                                                  cam 19 Very Heavy

                                                                  cog 19 Very Heavy

                                                                  bolt 17 Very Heavy

                                                                  nut 14 Very Heavy

                                                                  screw 14 Very Heavy

                                                                  nut 14 Quite Heavy

                                                                  screw 14 Quite Heavy

                                                                  screw 12 Quite Heavy

                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                  92

                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                  On considegravere AVG(Qty1) pour Qty

                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                  SP

                                                                  s p qtyQty1

                                                                  s1 p1 300 400

                                                                  s1 p2 200

                                                                  s1 p3 400 600

                                                                  s1 p4 200 300

                                                                  s1 p5 100

                                                                  s1 p6 100 200

                                                                  s2 p2 300 500

                                                                  s3 p2 400

                                                                  s4 p1 200 100

                                                                  s4 p2 200

                                                                  s4 p4 300

                                                                  s4 p5 400

                                                                  93

                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                  SP

                                                                  s p qtyQty1

                                                                  s1 p1 300 400

                                                                  s1 p2 200

                                                                  s1 p3 400 600

                                                                  s1 p4 200 300

                                                                  s1 p5 100

                                                                  s1 p6 100 200

                                                                  s2 p2 300 500

                                                                  s3 p2 400

                                                                  s4 p1 200 100

                                                                  s4 p2 200

                                                                  s4 p4 300

                                                                  s4 p5 400

                                                                  qty for partpredicted or

                                                                  unknown Qty1

                                                                  100 p5

                                                                  100 predicted value 200

                                                                  200 p2

                                                                  200 predicted value 200

                                                                  300 p4

                                                                  300 predicted value 450

                                                                  400 p2

                                                                  400 p5

                                                                  400 predicted value 600

                                                                  94

                                                                  Tendance

                                                                  qty Qty1

                                                                  100 200

                                                                  200 300

                                                                  300 400

                                                                  400 600

                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                  Graph 3D avec Qty en abscisses

                                                                  95

                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                  30102008 120 27102008 4

                                                                  25102008 131 22102008 4

                                                                  23102008 127 20102008 4

                                                                  17102008 269 14102008 4

                                                                  15102008 60 12102008 4

                                                                  11102008 295 08102008 4

                                                                  09102008 340 06102008 4

                                                                  08102008 324 05102008 4

                                                                  06102008 315 03102008 4

                                                                  96

                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                  Graphique avec une info-bulle

                                                                  97

                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                  glissantes

                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                  bull MAVG

                                                                  bull MSUM

                                                                  bull MDIFF

                                                                  bull Voir Teradata + loin

                                                                  98

                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                  99

                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                  100

                                                                  Seacuteries financiegraveres

                                                                  capital taux nval apregraves n ans

                                                                  taux1val1 apregraves n ans

                                                                  GainAbs GainRel

                                                                  100 005 1 105 006 106 1 1

                                                                  100 005 2 110 006 112 2 2

                                                                  100 005 3 115 006 119 4 4

                                                                  100 005 4 121 006 126 5 5

                                                                  100 005 5 127 006 133 6 6

                                                                  100 005 6 134 006 141 7 7

                                                                  100 005 7 140 006 150 10 10

                                                                  100 005 8 147 006 159 12 12

                                                                  100 005 9 155 006 168 13 13

                                                                  100 005 10 162 006 179 17 17

                                                                  100 005 11 171 006 189 18 18

                                                                  100 005 12 179 006 201 22 22

                                                                  100 005 13 188 006 213 25 25

                                                                  100 005 14 197 006 226 29 29

                                                                  100 005 15 207 006 239 32 32

                                                                  100 005 16 218 006 254 36 36

                                                                  100 005 17 229 006 269 40 40

                                                                  100 005 18 240 006 285 45 45

                                                                  100 005 19 252 006 302 50 50

                                                                  100 005 20 265 006 320 55 55

                                                                  101

                                                                  Seacuteries financiegraveres

                                                                  102

                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                  financiers de la table Produits

                                                                  bull Dans la limite L de la somme donneacutee

                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                  bull En ordre descendant de prix

                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                  bull Plusieurs actionshellip

                                                                  103

                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                  P prix

                                                                  p3 200

                                                                  p1 200

                                                                  p2 400

                                                                  p3 200

                                                                  p4 100

                                                                  p6 100

                                                                  p5 300

                                                                  p8 300

                                                                  p7 400

                                                                  p10 200

                                                                  p12 300

                                                                  p13 300

                                                                  104

                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                  ORDER BY 4 desc 8 123

                                                                  105

                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                  106

                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                  107

                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                  108

                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                  109

                                                                  CUBE(DB2 amp SQL-Server)

                                                                  CUBE(DB2 amp SQL-Server)

                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                  110

                                                                  GROUPING SETS

                                                                  On indique explicitement les groupesndash entre ()

                                                                  le groupe () est constitueacute de toute la table

                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                  WHERE SP P = PP AND SP S = SS

                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                  HAVING tot-qty gt 100

                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                  111

                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                  Peut ecirctre laborieux pour le CUBE

                                                                  112

                                                                  ROLLUP

                                                                  Remarquez le laquo null as cityraquo

                                                                  113

                                                                  ROLLUP

                                                                  114

                                                                  ROLLUP

                                                                  Et le CUBE

                                                                  Une solution pour l ambiguiumlteacute

                                                                  de certains nuls

                                                                  115

                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                  Wiley (publ)

                                                                  116

                                                                  Sous-Tables Parameacutetreacutees

                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                  117

                                                                  Sous-Tables Parameacutetreacutees

                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                  118

                                                                  Sous-Tables Parameacutetreacutees

                                                                  119

                                                                  Sous-Tables Parameacutetreacutees

                                                                  120

                                                                  Sous-Tables Parameacutetreacutees

                                                                  121

                                                                  Sous-Tables Parameacutetreacutees

                                                                  122

                                                                  Sous-Tables Parameacutetreacutees

                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                  123

                                                                  Sous-Tables Parameacutetreacutees

                                                                  Exeacutecution autonome

                                                                  124

                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                  hellip

                                                                  125

                                                                  Liste de Choix Multibase

                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                  126

                                                                  Liste de Choix MultibaseReacutesultat

                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                  Tregraves bonne question agrave Microsoft

                                                                  148

                                                                  FIN

                                                                  149

                                                                  • SQL Avanceacute 2010
                                                                  • Quoi amp Pourquoi
                                                                  • Slide 3
                                                                  • Synonymes
                                                                  • Noms dattributs
                                                                  • Slide 6
                                                                  • Slide 7
                                                                  • Slide 8
                                                                  • Insertion dans une Vue
                                                                  • Insertion dans une Vue (2)
                                                                  • MAJ drsquoune Vue MsAccess
                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                  • Suppression dans une Vue MsAccess
                                                                  • MsAccess Leacutegendes
                                                                  • Expressions de valeur
                                                                  • Expressions de valeur (2)
                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                  • UNION et Noms Drsquoattributs
                                                                  • UNION et ORDER BY
                                                                  • ORDER BY et expressions de valeur
                                                                  • ORDER BY et expressions de valeur (2)
                                                                  • Ordre de prioriteacute dopeacuterations
                                                                  • Preacutedicat TOP
                                                                  • Preacutedicat TOP (2)
                                                                  • Clause BETWEEN
                                                                  • Limitations de NOT
                                                                  • ANY et ALL
                                                                  • Injection SQL
                                                                  • Injection SQL (2)
                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                  • Tabulations Croiseacutees
                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                  • Tabulations Croiseacutees (2)
                                                                  • Tabulations Croiseacutees (3)
                                                                  • Tabulations Croiseacutees (4)
                                                                  • Tabulations Croiseacutees (5)
                                                                  • XOR
                                                                  • IMP
                                                                  • Sous-requecirctes
                                                                  • Sous-requecirctes (2)
                                                                  • Sous-requecirctes (3)
                                                                  • Sous-requecirctes (4)
                                                                  • Sous-requecirctes (5)
                                                                  • Sous-requecirctes (6)
                                                                  • Sous-requecirctes (7)
                                                                  • Application aux Probabiliteacutes
                                                                  • Clause FROM imbriqueacutee
                                                                  • Clause FROM imbriqueacutee (2)
                                                                  • Clause FROM imbriqueacutee (3)
                                                                  • Clause FROM imbriqueacutee (4)
                                                                  • Clause FROM imbriqueacutee (5)
                                                                  • Clause FROM imbriqueacutee (6)
                                                                  • Valeurs nulles
                                                                  • Valeurs nulles (2)
                                                                  • Valeurs nulles (3)
                                                                  • Valeurs nulles (4)
                                                                  • Fonctions Scalaires DateTemps
                                                                  • Fonctions Scalaires DateTemps (2)
                                                                  • Fonctions Scalaires DateTemps (3)
                                                                  • Fonctions Scalaires DateTemps (4)
                                                                  • Fonctions Scalaires DateTemps (5)
                                                                  • Fonction Scalaire RND
                                                                  • Fonction Scalaire RND (2)
                                                                  • Fonctions Financiegraveres
                                                                  • Fonctions Financiegraveres (2)
                                                                  • Fonction DDB
                                                                  • Fonction DDB (2)
                                                                  • Fonction PMT
                                                                  • Fonction PMT (2)
                                                                  • Placement agrave taux variable
                                                                  • GROUP BY
                                                                  • LIST Function
                                                                  • LIST Function (2)
                                                                  • GROUP BY avec WHERE
                                                                  • GROUP BY (2)
                                                                  • GROUP BY avec HAVING
                                                                  • T-GROUP BY
                                                                  • T-GROUP BY (2)
                                                                  • T-GROUP BY (3)
                                                                  • T-GROUP BY (4)
                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                  • Rangs Denses (Dense Ranking)
                                                                  • Rangs Denses Graphique MsAccess
                                                                  • Distribution
                                                                  • Reacutesultat
                                                                  • Distribution Cumulative
                                                                  • Reacutesultat (2)
                                                                  • Cateacutegorisation
                                                                  • Cateacutegorisation (2)
                                                                  • Cateacutegorisation (3)
                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                  • Tendance
                                                                  • Moyenne Glissante
                                                                  • Moyenne Glissante (2)
                                                                  • Moyenne Glissante (3)
                                                                  • Seacuteries financiegraveres
                                                                  • Seacuteries financiegraveres (2)
                                                                  • Seacuteries financiegraveres (3)
                                                                  • Seacuteries financiegraveres (4)
                                                                  • Creacuteation drsquoun Portefeuille
                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                  • CUBE (DB2 amp SQL-Server)
                                                                  • GROUPING SETS
                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                  • Slide 112
                                                                  • Slide 113
                                                                  • Slide 114
                                                                  • Autres Opeacuterations Utiles
                                                                  • Sous-Tables Parameacutetreacutees
                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                  • Liste de Choix Multibase
                                                                  • Liste de Choix Multibase (2)
                                                                  • Liste de Choix Multibase Reacutesultat
                                                                  • FIN
                                                                  • Slide 149

                                                                    34

                                                                    TRANSFORM Sum(SPQty) SELECT SP[S] Sum(SPQty) AS [Total

                                                                    Qty]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                    Tabulations Croiseacutees

                                                                    Nouvellescolonnes

                                                                    35

                                                                    La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                                    On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                    Tabulations Croiseacutees

                                                                    36

                                                                    On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                                    Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                                    On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                                    Mais cette clause naffecte pas les calculs des agreacutegats

                                                                    Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                                    Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                                    Tabulations Croiseacutees

                                                                    37

                                                                    XORSELECT S[S] SStatus SCity

                                                                    FROM S

                                                                    WHERE Status=10 Xor city=paris

                                                                    bull A noter le traitement du nul dans City

                                                                    38

                                                                    IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                    bull A noter le traitement du nul dans City

                                                                    39

                                                                    Sous-requecirctes

                                                                    A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                    clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                    rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                    sous-requecircte

                                                                    SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                    40

                                                                    Sous-requecirctes

                                                                    Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                    laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                    vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                    plus grande

                                                                    41

                                                                    Sous-requecirctes

                                                                    Skylinendash Tout objet non-domineacute (cacheacute

                                                                    totalement) par un autre

                                                                    SELECT X[s] X[p] qty delay

                                                                    FROM SP X

                                                                    where not exists

                                                                    (select from SP as Y

                                                                    where (Yqty gt= XQty and YDelay lt XDelay or

                                                                    Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                    order by X[p]

                                                                    42

                                                                    Sous-requecirctes Reacutesultat

                                                                    s p qty delay

                                                                    s1 p1 300 15

                                                                    s4 p1 200 13

                                                                    s3 p2 400 15

                                                                    s2 p2 300 12

                                                                    s1 p3 400 17

                                                                    s4 p4 300 11

                                                                    s4 p5 400 7

                                                                    s1 p6 100 8

                                                                    s p qty Delay

                                                                    s1 p1 300 15

                                                                    s1 p2 200 12

                                                                    s1 p3 400 17

                                                                    s1 p4 200 11

                                                                    s1 p5 100 7

                                                                    s1 p6 100 8

                                                                    s2 p2 300 12

                                                                    s3 p2 400 15

                                                                    s4 p1 200 13

                                                                    s4 p2 200 15

                                                                    s4 p4 300 11

                                                                    s4 p5 400 7

                                                                    S

                                                                    43

                                                                    Sous-requecirctes

                                                                    On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                    SELECT Count() AS TotalQty

                                                                    FROM (select distinct qty from sp)

                                                                    On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                    SELECT SP[s] SP[p] qty

                                                                    (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                    round(qtyTotalQty 3) AS Fraction

                                                                    FROM SP order by [s]

                                                                    44

                                                                    Sous-requecirctes

                                                                    s p qty TotalQty Fraction

                                                                    s1 p1 300 1300 0231

                                                                    s1 p6 100 1300 0077

                                                                    s1 p5 100 1300 0077

                                                                    s1 p4 200 1300 0154

                                                                    s1 p3 400 1300 0308

                                                                    s1 p2 200 1300 0154

                                                                    s2 p2 300 300 1

                                                                    s3 p2 400 400 1

                                                                    s4 p5 400 1100 0364

                                                                    s4 p4 300 1100 0273

                                                                    s4 p2 200 1100 0182

                                                                    bull ReacutesultatSP

                                                                    s p qty

                                                                    s1 p1 300

                                                                    s1 p2 200

                                                                    s1 p3 400

                                                                    s1 p4 200

                                                                    s1 p5 100

                                                                    s1 p6 100

                                                                    s2 p2 300

                                                                    s3 p2 400

                                                                    s4 p1 200

                                                                    s4 p2 200

                                                                    s4 p4 300

                                                                    s4 p5 400

                                                                    45

                                                                    Sous-requecirctesbull En Mode Graphique

                                                                    s p qtyTotalQty

                                                                    Fraction

                                                                    s1 p1 300 1300 0231

                                                                    s1 p6 100 1300 0077

                                                                    s1 p5 100 1300 0077

                                                                    s1 p4 200 1300 0154

                                                                    s1 p3 400 1300 0308

                                                                    s1 p2 200 1300 0154

                                                                    s2 p2 300 300 1

                                                                    s3 p2 400 400 1

                                                                    s4 p5 400 1100 0364

                                                                    s4 p4 300 1100 0273

                                                                    s4 p2 200 1100 0182

                                                                    46

                                                                    Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                    SELECT (select count(qty) from SP

                                                                    where qty gt= [seuil svp ]) count() as reacutesultat

                                                                    FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                    probabiliteacute conditionnelle

                                                                    47

                                                                    Clause FROM imbriqueacutee

                                                                    Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                    Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                    Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                    Agrave essayer

                                                                    48

                                                                    Clause FROM imbriqueacuteePossibiliteacutes

                                                                    ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                    ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                    MsAccess

                                                                    ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                    Mais la reacutefeacuterence au nom de la requecircte OK

                                                                    49

                                                                    Clause FROM imbriqueacutee

                                                                    SELECT sum(weight) AS [poids-total]

                                                                    FROM (SELECT weight pcity FROM P WHERE City like l

                                                                    UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                    50

                                                                    Clause FROM imbriqueacutee

                                                                    select avg(moy1) as [moyenne-des-moyennes]

                                                                    FROM

                                                                    (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                    51

                                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                    52

                                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                    totaux partiels et total geacuteneacuteral

                                                                    total_Id TotalQty

                                                                    s1 1300

                                                                    s2 300

                                                                    s3 400

                                                                    s4 400

                                                                    total Geacuteneacuteral

                                                                    2400

                                                                    53

                                                                    Valeurs nulles

                                                                    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                    Non WHERE HAVING GROUP BY (rel 1)

                                                                    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                    MsAccess Oui DISTINCT Autres clauses

                                                                    54

                                                                    Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                    1 x gt y est vrai ou faux

                                                                    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                    SELECT FROM S WHERE CITY =Paris

                                                                    UNION

                                                                    SELECT FROM S WHERE NOT CITY = Paris

                                                                    est toujours pourquoi faire simpleSELECT FROM S

                                                                    si on peut faire compliqueacute

                                                                    55

                                                                    Valeurs nullesValeurs nulles

                                                                    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                    56

                                                                    Valeurs nulles

                                                                    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                    LOG (nul) -gt Error A voir cas par cas

                                                                    57

                                                                    Fonctions Scalaires DateTemps

                                                                    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                    58

                                                                    Fonctions Scalaires DateTemps

                                                                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                    weekday(day(now())-1) AS [day]FROM S

                                                                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                    59

                                                                    Fonctions Scalaires DateTemps

                                                                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                    Interval Explanation

                                                                    Yyyy Year

                                                                    q Quarter

                                                                    m Month

                                                                    y Day of year

                                                                    d Day

                                                                    w Weekday

                                                                    ww Week

                                                                    h Hour

                                                                    n Minute

                                                                    s Second

                                                                    60

                                                                    Fonctions Scalaires DateTemps

                                                                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                    Test DateDiff

                                                                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                    61

                                                                    Fonctions Scalaires DateTemps

                                                                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                    Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                    62

                                                                    Fonction Scalaire RND

                                                                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                    echantillon s rank

                                                                    s1 502628087997437E-02

                                                                    s4 0518015921115875

                                                                    s3 075702953338623

                                                                    63

                                                                    Fonction Scalaire RND

                                                                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                    Votre commentaire ici

                                                                    64

                                                                    Fonctions Financiegraveres

                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                    65

                                                                    Fonctions Financiegraveres

                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                    66

                                                                    Fonction DDB

                                                                    insert into DDB (cost salvage life factor amortiss period)

                                                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                    DDB(cost salvage life period factor) as amortiss period

                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                    67

                                                                    Fonction DDB

                                                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                    68

                                                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                    nombres neacutegatifs

                                                                    Fonction PMT

                                                                    69

                                                                    Fonction PMT

                                                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                    Fonction PMT calcul dannuiteacute demprunt

                                                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                    preacutesentevaleur_payeacutee surprime

                                                                    -16049 005 20 200000 -320980 -120980

                                                                    70

                                                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                    Et les nuls que log ne supporte pas

                                                                    Anneacutee relative

                                                                    Taux

                                                                    1 4

                                                                    2 4

                                                                    3 3

                                                                    4 5

                                                                    5 5

                                                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                                                    71

                                                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                    est eacutequivalente agrave

                                                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                    WHERE XP = SPP) FROM SP

                                                                    Testez

                                                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                    72

                                                                    LIST Function La requecircte

                                                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                    Comme les tabulations croiseacutees

                                                                    ndash Mais en + simple

                                                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                    ndash En mono attribut (2004)

                                                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                    sous-formulaires

                                                                    73

                                                                    LIST Function

                                                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                    74

                                                                    GROUP BY avec WHERE

                                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                    75

                                                                    GROUP BY

                                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                    Pourquoi

                                                                    76

                                                                    GROUP BY avec HAVING

                                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                    77

                                                                    T-GROUP BY Proposeacute pour SQL

                                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                    Le rocircle de -join par rapport agrave equi-join

                                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                    78

                                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                    FROM SP Vrai ou Faux

                                                                    79

                                                                    T-GROUP BY

                                                                    Reacutesultat

                                                                    part avg_qty_other_parts part_avg_qty

                                                                    p1 250 300

                                                                    p2 262 250

                                                                    p3 245 400

                                                                    p4 260 250

                                                                    p5 260 250

                                                                    p6 272 100

                                                                    80

                                                                    T-GROUP BY

                                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                    81

                                                                    Rangs Non-Denses(Non Dense Ranking)

                                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                    s p qtyND-rank

                                                                    s4 p5 400 1

                                                                    s3 p2 400 1

                                                                    s1 p3 400 1

                                                                    s4 p4 300 4

                                                                    s2 p2 300 4

                                                                    s1 p1 300 4

                                                                    s4 p2 200 7

                                                                    s1 p4 200 7

                                                                    s1 p2 200 7

                                                                    s4 p1 200 7

                                                                    s1 p6 100 11

                                                                    s1 p5 100 11

                                                                    82

                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                    s p qty ND-rank

                                                                    s4 p5 400 1

                                                                    s3 p2 400 1

                                                                    s1 p3 400 1

                                                                    s4 p4 300 4

                                                                    s2 p2 300 4

                                                                    s1 p1 300 4

                                                                    s4 p2 200 7

                                                                    s1 p4 200 7

                                                                    s1 p2 200 7

                                                                    s4 p1 200 7

                                                                    s1 p6 100 11

                                                                    s1 p5 100 11

                                                                    83

                                                                    Rangs Denses(Dense Ranking)

                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                    s p qtyD-rank

                                                                    s1 p3 400 1

                                                                    s3 p2 400 1

                                                                    s4 p5 400 1

                                                                    s1 p1 300 2

                                                                    s2 p2 300 2

                                                                    s4 p4 300 2

                                                                    s1 p4 200 3

                                                                    s1 p2 200 3

                                                                    s4 p2 200 3

                                                                    s4 p1 200 3

                                                                    s1 p6 100 4

                                                                    s1 p5 100 4

                                                                    84

                                                                    Rangs DensesGraphique MsAccess

                                                                    s p qty D-rank

                                                                    s1 p3 400 1

                                                                    s3 p2 400 1

                                                                    s4 p5 400 1

                                                                    s1 p1 300 2

                                                                    s2 p2 300 2

                                                                    s4 p4 300 2

                                                                    s1 p4 200 3

                                                                    s1 p2 200 3

                                                                    s4 p2 200 3

                                                                    s4 p1 200 3

                                                                    s1 p6 100 4

                                                                    s1 p5 100 4

                                                                    85

                                                                    Distribution

                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                    86

                                                                    Reacutesultat

                                                                    s Distribution

                                                                    s1 0419

                                                                    s2 0097

                                                                    s3 0129

                                                                    s4 0355

                                                                    87

                                                                    Distribution Cumulative

                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                    FROM SP

                                                                    ORDER BY SP[s]

                                                                    88

                                                                    Reacutesultat

                                                                    sDistribution Cumuleacutee

                                                                    s1 0419

                                                                    s2 0516

                                                                    s3 0645

                                                                    s4 1

                                                                    89

                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                    90

                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                    FROM S

                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                    s1 Smith Paris good good

                                                                    s2 Jones 100 london good VGood

                                                                    s3 Blake 30 Paris good good

                                                                    s4 Clark 10 london OK OK

                                                                    s5 Adams 30 Athens good good

                                                                    bull Notez le traitement du null

                                                                    91

                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                    FROM P where weight gt 13

                                                                    union

                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                    UNION

                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                    ORDER BY warning DESC weight DESC

                                                                    pname weight Warning

                                                                    cam 19 Very Heavy

                                                                    cog 19 Very Heavy

                                                                    bolt 17 Very Heavy

                                                                    nut 14 Very Heavy

                                                                    screw 14 Very Heavy

                                                                    nut 14 Quite Heavy

                                                                    screw 14 Quite Heavy

                                                                    screw 12 Quite Heavy

                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                    92

                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                    On considegravere AVG(Qty1) pour Qty

                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                    SP

                                                                    s p qtyQty1

                                                                    s1 p1 300 400

                                                                    s1 p2 200

                                                                    s1 p3 400 600

                                                                    s1 p4 200 300

                                                                    s1 p5 100

                                                                    s1 p6 100 200

                                                                    s2 p2 300 500

                                                                    s3 p2 400

                                                                    s4 p1 200 100

                                                                    s4 p2 200

                                                                    s4 p4 300

                                                                    s4 p5 400

                                                                    93

                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                    SP

                                                                    s p qtyQty1

                                                                    s1 p1 300 400

                                                                    s1 p2 200

                                                                    s1 p3 400 600

                                                                    s1 p4 200 300

                                                                    s1 p5 100

                                                                    s1 p6 100 200

                                                                    s2 p2 300 500

                                                                    s3 p2 400

                                                                    s4 p1 200 100

                                                                    s4 p2 200

                                                                    s4 p4 300

                                                                    s4 p5 400

                                                                    qty for partpredicted or

                                                                    unknown Qty1

                                                                    100 p5

                                                                    100 predicted value 200

                                                                    200 p2

                                                                    200 predicted value 200

                                                                    300 p4

                                                                    300 predicted value 450

                                                                    400 p2

                                                                    400 p5

                                                                    400 predicted value 600

                                                                    94

                                                                    Tendance

                                                                    qty Qty1

                                                                    100 200

                                                                    200 300

                                                                    300 400

                                                                    400 600

                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                    Graph 3D avec Qty en abscisses

                                                                    95

                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                    30102008 120 27102008 4

                                                                    25102008 131 22102008 4

                                                                    23102008 127 20102008 4

                                                                    17102008 269 14102008 4

                                                                    15102008 60 12102008 4

                                                                    11102008 295 08102008 4

                                                                    09102008 340 06102008 4

                                                                    08102008 324 05102008 4

                                                                    06102008 315 03102008 4

                                                                    96

                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                    Graphique avec une info-bulle

                                                                    97

                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                    glissantes

                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                    bull MAVG

                                                                    bull MSUM

                                                                    bull MDIFF

                                                                    bull Voir Teradata + loin

                                                                    98

                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                    99

                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                    100

                                                                    Seacuteries financiegraveres

                                                                    capital taux nval apregraves n ans

                                                                    taux1val1 apregraves n ans

                                                                    GainAbs GainRel

                                                                    100 005 1 105 006 106 1 1

                                                                    100 005 2 110 006 112 2 2

                                                                    100 005 3 115 006 119 4 4

                                                                    100 005 4 121 006 126 5 5

                                                                    100 005 5 127 006 133 6 6

                                                                    100 005 6 134 006 141 7 7

                                                                    100 005 7 140 006 150 10 10

                                                                    100 005 8 147 006 159 12 12

                                                                    100 005 9 155 006 168 13 13

                                                                    100 005 10 162 006 179 17 17

                                                                    100 005 11 171 006 189 18 18

                                                                    100 005 12 179 006 201 22 22

                                                                    100 005 13 188 006 213 25 25

                                                                    100 005 14 197 006 226 29 29

                                                                    100 005 15 207 006 239 32 32

                                                                    100 005 16 218 006 254 36 36

                                                                    100 005 17 229 006 269 40 40

                                                                    100 005 18 240 006 285 45 45

                                                                    100 005 19 252 006 302 50 50

                                                                    100 005 20 265 006 320 55 55

                                                                    101

                                                                    Seacuteries financiegraveres

                                                                    102

                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                    financiers de la table Produits

                                                                    bull Dans la limite L de la somme donneacutee

                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                    bull En ordre descendant de prix

                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                    bull Plusieurs actionshellip

                                                                    103

                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                    P prix

                                                                    p3 200

                                                                    p1 200

                                                                    p2 400

                                                                    p3 200

                                                                    p4 100

                                                                    p6 100

                                                                    p5 300

                                                                    p8 300

                                                                    p7 400

                                                                    p10 200

                                                                    p12 300

                                                                    p13 300

                                                                    104

                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                    ORDER BY 4 desc 8 123

                                                                    105

                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                    106

                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                    107

                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                    108

                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                    109

                                                                    CUBE(DB2 amp SQL-Server)

                                                                    CUBE(DB2 amp SQL-Server)

                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                    110

                                                                    GROUPING SETS

                                                                    On indique explicitement les groupesndash entre ()

                                                                    le groupe () est constitueacute de toute la table

                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                    WHERE SP P = PP AND SP S = SS

                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                    HAVING tot-qty gt 100

                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                    111

                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                    Peut ecirctre laborieux pour le CUBE

                                                                    112

                                                                    ROLLUP

                                                                    Remarquez le laquo null as cityraquo

                                                                    113

                                                                    ROLLUP

                                                                    114

                                                                    ROLLUP

                                                                    Et le CUBE

                                                                    Une solution pour l ambiguiumlteacute

                                                                    de certains nuls

                                                                    115

                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                    Wiley (publ)

                                                                    116

                                                                    Sous-Tables Parameacutetreacutees

                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                    117

                                                                    Sous-Tables Parameacutetreacutees

                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                    118

                                                                    Sous-Tables Parameacutetreacutees

                                                                    119

                                                                    Sous-Tables Parameacutetreacutees

                                                                    120

                                                                    Sous-Tables Parameacutetreacutees

                                                                    121

                                                                    Sous-Tables Parameacutetreacutees

                                                                    122

                                                                    Sous-Tables Parameacutetreacutees

                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                    123

                                                                    Sous-Tables Parameacutetreacutees

                                                                    Exeacutecution autonome

                                                                    124

                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                    hellip

                                                                    125

                                                                    Liste de Choix Multibase

                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                    126

                                                                    Liste de Choix MultibaseReacutesultat

                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                    Tregraves bonne question agrave Microsoft

                                                                    148

                                                                    FIN

                                                                    149

                                                                    • SQL Avanceacute 2010
                                                                    • Quoi amp Pourquoi
                                                                    • Slide 3
                                                                    • Synonymes
                                                                    • Noms dattributs
                                                                    • Slide 6
                                                                    • Slide 7
                                                                    • Slide 8
                                                                    • Insertion dans une Vue
                                                                    • Insertion dans une Vue (2)
                                                                    • MAJ drsquoune Vue MsAccess
                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                    • Suppression dans une Vue MsAccess
                                                                    • MsAccess Leacutegendes
                                                                    • Expressions de valeur
                                                                    • Expressions de valeur (2)
                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                    • UNION et Noms Drsquoattributs
                                                                    • UNION et ORDER BY
                                                                    • ORDER BY et expressions de valeur
                                                                    • ORDER BY et expressions de valeur (2)
                                                                    • Ordre de prioriteacute dopeacuterations
                                                                    • Preacutedicat TOP
                                                                    • Preacutedicat TOP (2)
                                                                    • Clause BETWEEN
                                                                    • Limitations de NOT
                                                                    • ANY et ALL
                                                                    • Injection SQL
                                                                    • Injection SQL (2)
                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                    • Tabulations Croiseacutees
                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                    • Tabulations Croiseacutees (2)
                                                                    • Tabulations Croiseacutees (3)
                                                                    • Tabulations Croiseacutees (4)
                                                                    • Tabulations Croiseacutees (5)
                                                                    • XOR
                                                                    • IMP
                                                                    • Sous-requecirctes
                                                                    • Sous-requecirctes (2)
                                                                    • Sous-requecirctes (3)
                                                                    • Sous-requecirctes (4)
                                                                    • Sous-requecirctes (5)
                                                                    • Sous-requecirctes (6)
                                                                    • Sous-requecirctes (7)
                                                                    • Application aux Probabiliteacutes
                                                                    • Clause FROM imbriqueacutee
                                                                    • Clause FROM imbriqueacutee (2)
                                                                    • Clause FROM imbriqueacutee (3)
                                                                    • Clause FROM imbriqueacutee (4)
                                                                    • Clause FROM imbriqueacutee (5)
                                                                    • Clause FROM imbriqueacutee (6)
                                                                    • Valeurs nulles
                                                                    • Valeurs nulles (2)
                                                                    • Valeurs nulles (3)
                                                                    • Valeurs nulles (4)
                                                                    • Fonctions Scalaires DateTemps
                                                                    • Fonctions Scalaires DateTemps (2)
                                                                    • Fonctions Scalaires DateTemps (3)
                                                                    • Fonctions Scalaires DateTemps (4)
                                                                    • Fonctions Scalaires DateTemps (5)
                                                                    • Fonction Scalaire RND
                                                                    • Fonction Scalaire RND (2)
                                                                    • Fonctions Financiegraveres
                                                                    • Fonctions Financiegraveres (2)
                                                                    • Fonction DDB
                                                                    • Fonction DDB (2)
                                                                    • Fonction PMT
                                                                    • Fonction PMT (2)
                                                                    • Placement agrave taux variable
                                                                    • GROUP BY
                                                                    • LIST Function
                                                                    • LIST Function (2)
                                                                    • GROUP BY avec WHERE
                                                                    • GROUP BY (2)
                                                                    • GROUP BY avec HAVING
                                                                    • T-GROUP BY
                                                                    • T-GROUP BY (2)
                                                                    • T-GROUP BY (3)
                                                                    • T-GROUP BY (4)
                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                    • Rangs Denses (Dense Ranking)
                                                                    • Rangs Denses Graphique MsAccess
                                                                    • Distribution
                                                                    • Reacutesultat
                                                                    • Distribution Cumulative
                                                                    • Reacutesultat (2)
                                                                    • Cateacutegorisation
                                                                    • Cateacutegorisation (2)
                                                                    • Cateacutegorisation (3)
                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                    • Tendance
                                                                    • Moyenne Glissante
                                                                    • Moyenne Glissante (2)
                                                                    • Moyenne Glissante (3)
                                                                    • Seacuteries financiegraveres
                                                                    • Seacuteries financiegraveres (2)
                                                                    • Seacuteries financiegraveres (3)
                                                                    • Seacuteries financiegraveres (4)
                                                                    • Creacuteation drsquoun Portefeuille
                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                    • CUBE (DB2 amp SQL-Server)
                                                                    • GROUPING SETS
                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                    • Slide 112
                                                                    • Slide 113
                                                                    • Slide 114
                                                                    • Autres Opeacuterations Utiles
                                                                    • Sous-Tables Parameacutetreacutees
                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                    • Liste de Choix Multibase
                                                                    • Liste de Choix Multibase (2)
                                                                    • Liste de Choix Multibase Reacutesultat
                                                                    • FIN
                                                                    • Slide 149

                                                                      35

                                                                      La fonction agreacutegat dans la clause TRANSFORM est obligatoirendash bien que SUM(QTY) = AVG(QTY) = QTYndash mais COUNT(QTY) = 1

                                                                      On peut geacuteneacuterer une expression de valeur TRANSFORM SUM(05QTY) AS [Q2]SELECT Sum(SP[Q2]) AS [Qte tot dans 1 mois] Avg(P[Q2]) AS [Qte moy dans 1 mois]FROM SPGROUP BY SP[S]PIVOT SP[p]

                                                                      Tabulations Croiseacutees

                                                                      36

                                                                      On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                                      Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                                      On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                                      Mais cette clause naffecte pas les calculs des agreacutegats

                                                                      Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                                      Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                                      Tabulations Croiseacutees

                                                                      37

                                                                      XORSELECT S[S] SStatus SCity

                                                                      FROM S

                                                                      WHERE Status=10 Xor city=paris

                                                                      bull A noter le traitement du nul dans City

                                                                      38

                                                                      IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                      bull A noter le traitement du nul dans City

                                                                      39

                                                                      Sous-requecirctes

                                                                      A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                      clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                      rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                      sous-requecircte

                                                                      SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                      40

                                                                      Sous-requecirctes

                                                                      Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                      laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                      vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                      plus grande

                                                                      41

                                                                      Sous-requecirctes

                                                                      Skylinendash Tout objet non-domineacute (cacheacute

                                                                      totalement) par un autre

                                                                      SELECT X[s] X[p] qty delay

                                                                      FROM SP X

                                                                      where not exists

                                                                      (select from SP as Y

                                                                      where (Yqty gt= XQty and YDelay lt XDelay or

                                                                      Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                      order by X[p]

                                                                      42

                                                                      Sous-requecirctes Reacutesultat

                                                                      s p qty delay

                                                                      s1 p1 300 15

                                                                      s4 p1 200 13

                                                                      s3 p2 400 15

                                                                      s2 p2 300 12

                                                                      s1 p3 400 17

                                                                      s4 p4 300 11

                                                                      s4 p5 400 7

                                                                      s1 p6 100 8

                                                                      s p qty Delay

                                                                      s1 p1 300 15

                                                                      s1 p2 200 12

                                                                      s1 p3 400 17

                                                                      s1 p4 200 11

                                                                      s1 p5 100 7

                                                                      s1 p6 100 8

                                                                      s2 p2 300 12

                                                                      s3 p2 400 15

                                                                      s4 p1 200 13

                                                                      s4 p2 200 15

                                                                      s4 p4 300 11

                                                                      s4 p5 400 7

                                                                      S

                                                                      43

                                                                      Sous-requecirctes

                                                                      On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                      SELECT Count() AS TotalQty

                                                                      FROM (select distinct qty from sp)

                                                                      On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                      SELECT SP[s] SP[p] qty

                                                                      (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                      round(qtyTotalQty 3) AS Fraction

                                                                      FROM SP order by [s]

                                                                      44

                                                                      Sous-requecirctes

                                                                      s p qty TotalQty Fraction

                                                                      s1 p1 300 1300 0231

                                                                      s1 p6 100 1300 0077

                                                                      s1 p5 100 1300 0077

                                                                      s1 p4 200 1300 0154

                                                                      s1 p3 400 1300 0308

                                                                      s1 p2 200 1300 0154

                                                                      s2 p2 300 300 1

                                                                      s3 p2 400 400 1

                                                                      s4 p5 400 1100 0364

                                                                      s4 p4 300 1100 0273

                                                                      s4 p2 200 1100 0182

                                                                      bull ReacutesultatSP

                                                                      s p qty

                                                                      s1 p1 300

                                                                      s1 p2 200

                                                                      s1 p3 400

                                                                      s1 p4 200

                                                                      s1 p5 100

                                                                      s1 p6 100

                                                                      s2 p2 300

                                                                      s3 p2 400

                                                                      s4 p1 200

                                                                      s4 p2 200

                                                                      s4 p4 300

                                                                      s4 p5 400

                                                                      45

                                                                      Sous-requecirctesbull En Mode Graphique

                                                                      s p qtyTotalQty

                                                                      Fraction

                                                                      s1 p1 300 1300 0231

                                                                      s1 p6 100 1300 0077

                                                                      s1 p5 100 1300 0077

                                                                      s1 p4 200 1300 0154

                                                                      s1 p3 400 1300 0308

                                                                      s1 p2 200 1300 0154

                                                                      s2 p2 300 300 1

                                                                      s3 p2 400 400 1

                                                                      s4 p5 400 1100 0364

                                                                      s4 p4 300 1100 0273

                                                                      s4 p2 200 1100 0182

                                                                      46

                                                                      Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                      SELECT (select count(qty) from SP

                                                                      where qty gt= [seuil svp ]) count() as reacutesultat

                                                                      FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                      probabiliteacute conditionnelle

                                                                      47

                                                                      Clause FROM imbriqueacutee

                                                                      Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                      Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                      Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                      Agrave essayer

                                                                      48

                                                                      Clause FROM imbriqueacuteePossibiliteacutes

                                                                      ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                      ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                      MsAccess

                                                                      ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                      Mais la reacutefeacuterence au nom de la requecircte OK

                                                                      49

                                                                      Clause FROM imbriqueacutee

                                                                      SELECT sum(weight) AS [poids-total]

                                                                      FROM (SELECT weight pcity FROM P WHERE City like l

                                                                      UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                      50

                                                                      Clause FROM imbriqueacutee

                                                                      select avg(moy1) as [moyenne-des-moyennes]

                                                                      FROM

                                                                      (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                      UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                      51

                                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                      52

                                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                      totaux partiels et total geacuteneacuteral

                                                                      total_Id TotalQty

                                                                      s1 1300

                                                                      s2 300

                                                                      s3 400

                                                                      s4 400

                                                                      total Geacuteneacuteral

                                                                      2400

                                                                      53

                                                                      Valeurs nulles

                                                                      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                      Non WHERE HAVING GROUP BY (rel 1)

                                                                      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                      MsAccess Oui DISTINCT Autres clauses

                                                                      54

                                                                      Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                      1 x gt y est vrai ou faux

                                                                      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                      SELECT FROM S WHERE CITY =Paris

                                                                      UNION

                                                                      SELECT FROM S WHERE NOT CITY = Paris

                                                                      est toujours pourquoi faire simpleSELECT FROM S

                                                                      si on peut faire compliqueacute

                                                                      55

                                                                      Valeurs nullesValeurs nulles

                                                                      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                      56

                                                                      Valeurs nulles

                                                                      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                      LOG (nul) -gt Error A voir cas par cas

                                                                      57

                                                                      Fonctions Scalaires DateTemps

                                                                      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                      58

                                                                      Fonctions Scalaires DateTemps

                                                                      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                      weekday(day(now())-1) AS [day]FROM S

                                                                      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                      59

                                                                      Fonctions Scalaires DateTemps

                                                                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                      Interval Explanation

                                                                      Yyyy Year

                                                                      q Quarter

                                                                      m Month

                                                                      y Day of year

                                                                      d Day

                                                                      w Weekday

                                                                      ww Week

                                                                      h Hour

                                                                      n Minute

                                                                      s Second

                                                                      60

                                                                      Fonctions Scalaires DateTemps

                                                                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                      Test DateDiff

                                                                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                      61

                                                                      Fonctions Scalaires DateTemps

                                                                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                      Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                      62

                                                                      Fonction Scalaire RND

                                                                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                      echantillon s rank

                                                                      s1 502628087997437E-02

                                                                      s4 0518015921115875

                                                                      s3 075702953338623

                                                                      63

                                                                      Fonction Scalaire RND

                                                                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                      Votre commentaire ici

                                                                      64

                                                                      Fonctions Financiegraveres

                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                      65

                                                                      Fonctions Financiegraveres

                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                      66

                                                                      Fonction DDB

                                                                      insert into DDB (cost salvage life factor amortiss period)

                                                                      select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                      DDB(cost salvage life period factor) as amortiss period

                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                      67

                                                                      Fonction DDB

                                                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                      68

                                                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                      nombres neacutegatifs

                                                                      Fonction PMT

                                                                      69

                                                                      Fonction PMT

                                                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                      Fonction PMT calcul dannuiteacute demprunt

                                                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                      preacutesentevaleur_payeacutee surprime

                                                                      -16049 005 20 200000 -320980 -120980

                                                                      70

                                                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                      Et les nuls que log ne supporte pas

                                                                      Anneacutee relative

                                                                      Taux

                                                                      1 4

                                                                      2 4

                                                                      3 3

                                                                      4 5

                                                                      5 5

                                                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                                                      71

                                                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                      est eacutequivalente agrave

                                                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                      WHERE XP = SPP) FROM SP

                                                                      Testez

                                                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                      72

                                                                      LIST Function La requecircte

                                                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                      Comme les tabulations croiseacutees

                                                                      ndash Mais en + simple

                                                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                      ndash En mono attribut (2004)

                                                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                      sous-formulaires

                                                                      73

                                                                      LIST Function

                                                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                      74

                                                                      GROUP BY avec WHERE

                                                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                      75

                                                                      GROUP BY

                                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                      Pourquoi

                                                                      76

                                                                      GROUP BY avec HAVING

                                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                      77

                                                                      T-GROUP BY Proposeacute pour SQL

                                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                      Le rocircle de -join par rapport agrave equi-join

                                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                      78

                                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                      FROM SP Vrai ou Faux

                                                                      79

                                                                      T-GROUP BY

                                                                      Reacutesultat

                                                                      part avg_qty_other_parts part_avg_qty

                                                                      p1 250 300

                                                                      p2 262 250

                                                                      p3 245 400

                                                                      p4 260 250

                                                                      p5 260 250

                                                                      p6 272 100

                                                                      80

                                                                      T-GROUP BY

                                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                      81

                                                                      Rangs Non-Denses(Non Dense Ranking)

                                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                      s p qtyND-rank

                                                                      s4 p5 400 1

                                                                      s3 p2 400 1

                                                                      s1 p3 400 1

                                                                      s4 p4 300 4

                                                                      s2 p2 300 4

                                                                      s1 p1 300 4

                                                                      s4 p2 200 7

                                                                      s1 p4 200 7

                                                                      s1 p2 200 7

                                                                      s4 p1 200 7

                                                                      s1 p6 100 11

                                                                      s1 p5 100 11

                                                                      82

                                                                      Rangs Non-Denses(Graphique MsAccess)

                                                                      s p qty ND-rank

                                                                      s4 p5 400 1

                                                                      s3 p2 400 1

                                                                      s1 p3 400 1

                                                                      s4 p4 300 4

                                                                      s2 p2 300 4

                                                                      s1 p1 300 4

                                                                      s4 p2 200 7

                                                                      s1 p4 200 7

                                                                      s1 p2 200 7

                                                                      s4 p1 200 7

                                                                      s1 p6 100 11

                                                                      s1 p5 100 11

                                                                      83

                                                                      Rangs Denses(Dense Ranking)

                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                      s p qtyD-rank

                                                                      s1 p3 400 1

                                                                      s3 p2 400 1

                                                                      s4 p5 400 1

                                                                      s1 p1 300 2

                                                                      s2 p2 300 2

                                                                      s4 p4 300 2

                                                                      s1 p4 200 3

                                                                      s1 p2 200 3

                                                                      s4 p2 200 3

                                                                      s4 p1 200 3

                                                                      s1 p6 100 4

                                                                      s1 p5 100 4

                                                                      84

                                                                      Rangs DensesGraphique MsAccess

                                                                      s p qty D-rank

                                                                      s1 p3 400 1

                                                                      s3 p2 400 1

                                                                      s4 p5 400 1

                                                                      s1 p1 300 2

                                                                      s2 p2 300 2

                                                                      s4 p4 300 2

                                                                      s1 p4 200 3

                                                                      s1 p2 200 3

                                                                      s4 p2 200 3

                                                                      s4 p1 200 3

                                                                      s1 p6 100 4

                                                                      s1 p5 100 4

                                                                      85

                                                                      Distribution

                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                      86

                                                                      Reacutesultat

                                                                      s Distribution

                                                                      s1 0419

                                                                      s2 0097

                                                                      s3 0129

                                                                      s4 0355

                                                                      87

                                                                      Distribution Cumulative

                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                      FROM SP

                                                                      ORDER BY SP[s]

                                                                      88

                                                                      Reacutesultat

                                                                      sDistribution Cumuleacutee

                                                                      s1 0419

                                                                      s2 0516

                                                                      s3 0645

                                                                      s4 1

                                                                      89

                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                      90

                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                      FROM S

                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                      s1 Smith Paris good good

                                                                      s2 Jones 100 london good VGood

                                                                      s3 Blake 30 Paris good good

                                                                      s4 Clark 10 london OK OK

                                                                      s5 Adams 30 Athens good good

                                                                      bull Notez le traitement du null

                                                                      91

                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                      FROM P where weight gt 13

                                                                      union

                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                      UNION

                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                      ORDER BY warning DESC weight DESC

                                                                      pname weight Warning

                                                                      cam 19 Very Heavy

                                                                      cog 19 Very Heavy

                                                                      bolt 17 Very Heavy

                                                                      nut 14 Very Heavy

                                                                      screw 14 Very Heavy

                                                                      nut 14 Quite Heavy

                                                                      screw 14 Quite Heavy

                                                                      screw 12 Quite Heavy

                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                      92

                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                      On considegravere AVG(Qty1) pour Qty

                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                      SP

                                                                      s p qtyQty1

                                                                      s1 p1 300 400

                                                                      s1 p2 200

                                                                      s1 p3 400 600

                                                                      s1 p4 200 300

                                                                      s1 p5 100

                                                                      s1 p6 100 200

                                                                      s2 p2 300 500

                                                                      s3 p2 400

                                                                      s4 p1 200 100

                                                                      s4 p2 200

                                                                      s4 p4 300

                                                                      s4 p5 400

                                                                      93

                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                      SP

                                                                      s p qtyQty1

                                                                      s1 p1 300 400

                                                                      s1 p2 200

                                                                      s1 p3 400 600

                                                                      s1 p4 200 300

                                                                      s1 p5 100

                                                                      s1 p6 100 200

                                                                      s2 p2 300 500

                                                                      s3 p2 400

                                                                      s4 p1 200 100

                                                                      s4 p2 200

                                                                      s4 p4 300

                                                                      s4 p5 400

                                                                      qty for partpredicted or

                                                                      unknown Qty1

                                                                      100 p5

                                                                      100 predicted value 200

                                                                      200 p2

                                                                      200 predicted value 200

                                                                      300 p4

                                                                      300 predicted value 450

                                                                      400 p2

                                                                      400 p5

                                                                      400 predicted value 600

                                                                      94

                                                                      Tendance

                                                                      qty Qty1

                                                                      100 200

                                                                      200 300

                                                                      300 400

                                                                      400 600

                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                      Graph 3D avec Qty en abscisses

                                                                      95

                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                      30102008 120 27102008 4

                                                                      25102008 131 22102008 4

                                                                      23102008 127 20102008 4

                                                                      17102008 269 14102008 4

                                                                      15102008 60 12102008 4

                                                                      11102008 295 08102008 4

                                                                      09102008 340 06102008 4

                                                                      08102008 324 05102008 4

                                                                      06102008 315 03102008 4

                                                                      96

                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                      Graphique avec une info-bulle

                                                                      97

                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                      glissantes

                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                      bull MAVG

                                                                      bull MSUM

                                                                      bull MDIFF

                                                                      bull Voir Teradata + loin

                                                                      98

                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                      99

                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                      100

                                                                      Seacuteries financiegraveres

                                                                      capital taux nval apregraves n ans

                                                                      taux1val1 apregraves n ans

                                                                      GainAbs GainRel

                                                                      100 005 1 105 006 106 1 1

                                                                      100 005 2 110 006 112 2 2

                                                                      100 005 3 115 006 119 4 4

                                                                      100 005 4 121 006 126 5 5

                                                                      100 005 5 127 006 133 6 6

                                                                      100 005 6 134 006 141 7 7

                                                                      100 005 7 140 006 150 10 10

                                                                      100 005 8 147 006 159 12 12

                                                                      100 005 9 155 006 168 13 13

                                                                      100 005 10 162 006 179 17 17

                                                                      100 005 11 171 006 189 18 18

                                                                      100 005 12 179 006 201 22 22

                                                                      100 005 13 188 006 213 25 25

                                                                      100 005 14 197 006 226 29 29

                                                                      100 005 15 207 006 239 32 32

                                                                      100 005 16 218 006 254 36 36

                                                                      100 005 17 229 006 269 40 40

                                                                      100 005 18 240 006 285 45 45

                                                                      100 005 19 252 006 302 50 50

                                                                      100 005 20 265 006 320 55 55

                                                                      101

                                                                      Seacuteries financiegraveres

                                                                      102

                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                      financiers de la table Produits

                                                                      bull Dans la limite L de la somme donneacutee

                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                      bull En ordre descendant de prix

                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                      bull Plusieurs actionshellip

                                                                      103

                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                      P prix

                                                                      p3 200

                                                                      p1 200

                                                                      p2 400

                                                                      p3 200

                                                                      p4 100

                                                                      p6 100

                                                                      p5 300

                                                                      p8 300

                                                                      p7 400

                                                                      p10 200

                                                                      p12 300

                                                                      p13 300

                                                                      104

                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                      ORDER BY 4 desc 8 123

                                                                      105

                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                      106

                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                      107

                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                      108

                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                      109

                                                                      CUBE(DB2 amp SQL-Server)

                                                                      CUBE(DB2 amp SQL-Server)

                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                      110

                                                                      GROUPING SETS

                                                                      On indique explicitement les groupesndash entre ()

                                                                      le groupe () est constitueacute de toute la table

                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                      WHERE SP P = PP AND SP S = SS

                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                      HAVING tot-qty gt 100

                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                      111

                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                      Peut ecirctre laborieux pour le CUBE

                                                                      112

                                                                      ROLLUP

                                                                      Remarquez le laquo null as cityraquo

                                                                      113

                                                                      ROLLUP

                                                                      114

                                                                      ROLLUP

                                                                      Et le CUBE

                                                                      Une solution pour l ambiguiumlteacute

                                                                      de certains nuls

                                                                      115

                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                      Wiley (publ)

                                                                      116

                                                                      Sous-Tables Parameacutetreacutees

                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                      117

                                                                      Sous-Tables Parameacutetreacutees

                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                      118

                                                                      Sous-Tables Parameacutetreacutees

                                                                      119

                                                                      Sous-Tables Parameacutetreacutees

                                                                      120

                                                                      Sous-Tables Parameacutetreacutees

                                                                      121

                                                                      Sous-Tables Parameacutetreacutees

                                                                      122

                                                                      Sous-Tables Parameacutetreacutees

                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                      123

                                                                      Sous-Tables Parameacutetreacutees

                                                                      Exeacutecution autonome

                                                                      124

                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                      hellip

                                                                      125

                                                                      Liste de Choix Multibase

                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                      126

                                                                      Liste de Choix MultibaseReacutesultat

                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                      Tregraves bonne question agrave Microsoft

                                                                      148

                                                                      FIN

                                                                      149

                                                                      • SQL Avanceacute 2010
                                                                      • Quoi amp Pourquoi
                                                                      • Slide 3
                                                                      • Synonymes
                                                                      • Noms dattributs
                                                                      • Slide 6
                                                                      • Slide 7
                                                                      • Slide 8
                                                                      • Insertion dans une Vue
                                                                      • Insertion dans une Vue (2)
                                                                      • MAJ drsquoune Vue MsAccess
                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                      • Suppression dans une Vue MsAccess
                                                                      • MsAccess Leacutegendes
                                                                      • Expressions de valeur
                                                                      • Expressions de valeur (2)
                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                      • UNION et Noms Drsquoattributs
                                                                      • UNION et ORDER BY
                                                                      • ORDER BY et expressions de valeur
                                                                      • ORDER BY et expressions de valeur (2)
                                                                      • Ordre de prioriteacute dopeacuterations
                                                                      • Preacutedicat TOP
                                                                      • Preacutedicat TOP (2)
                                                                      • Clause BETWEEN
                                                                      • Limitations de NOT
                                                                      • ANY et ALL
                                                                      • Injection SQL
                                                                      • Injection SQL (2)
                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                      • Tabulations Croiseacutees
                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                      • Tabulations Croiseacutees (2)
                                                                      • Tabulations Croiseacutees (3)
                                                                      • Tabulations Croiseacutees (4)
                                                                      • Tabulations Croiseacutees (5)
                                                                      • XOR
                                                                      • IMP
                                                                      • Sous-requecirctes
                                                                      • Sous-requecirctes (2)
                                                                      • Sous-requecirctes (3)
                                                                      • Sous-requecirctes (4)
                                                                      • Sous-requecirctes (5)
                                                                      • Sous-requecirctes (6)
                                                                      • Sous-requecirctes (7)
                                                                      • Application aux Probabiliteacutes
                                                                      • Clause FROM imbriqueacutee
                                                                      • Clause FROM imbriqueacutee (2)
                                                                      • Clause FROM imbriqueacutee (3)
                                                                      • Clause FROM imbriqueacutee (4)
                                                                      • Clause FROM imbriqueacutee (5)
                                                                      • Clause FROM imbriqueacutee (6)
                                                                      • Valeurs nulles
                                                                      • Valeurs nulles (2)
                                                                      • Valeurs nulles (3)
                                                                      • Valeurs nulles (4)
                                                                      • Fonctions Scalaires DateTemps
                                                                      • Fonctions Scalaires DateTemps (2)
                                                                      • Fonctions Scalaires DateTemps (3)
                                                                      • Fonctions Scalaires DateTemps (4)
                                                                      • Fonctions Scalaires DateTemps (5)
                                                                      • Fonction Scalaire RND
                                                                      • Fonction Scalaire RND (2)
                                                                      • Fonctions Financiegraveres
                                                                      • Fonctions Financiegraveres (2)
                                                                      • Fonction DDB
                                                                      • Fonction DDB (2)
                                                                      • Fonction PMT
                                                                      • Fonction PMT (2)
                                                                      • Placement agrave taux variable
                                                                      • GROUP BY
                                                                      • LIST Function
                                                                      • LIST Function (2)
                                                                      • GROUP BY avec WHERE
                                                                      • GROUP BY (2)
                                                                      • GROUP BY avec HAVING
                                                                      • T-GROUP BY
                                                                      • T-GROUP BY (2)
                                                                      • T-GROUP BY (3)
                                                                      • T-GROUP BY (4)
                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                      • Rangs Denses (Dense Ranking)
                                                                      • Rangs Denses Graphique MsAccess
                                                                      • Distribution
                                                                      • Reacutesultat
                                                                      • Distribution Cumulative
                                                                      • Reacutesultat (2)
                                                                      • Cateacutegorisation
                                                                      • Cateacutegorisation (2)
                                                                      • Cateacutegorisation (3)
                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                      • Tendance
                                                                      • Moyenne Glissante
                                                                      • Moyenne Glissante (2)
                                                                      • Moyenne Glissante (3)
                                                                      • Seacuteries financiegraveres
                                                                      • Seacuteries financiegraveres (2)
                                                                      • Seacuteries financiegraveres (3)
                                                                      • Seacuteries financiegraveres (4)
                                                                      • Creacuteation drsquoun Portefeuille
                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                      • CUBE (DB2 amp SQL-Server)
                                                                      • GROUPING SETS
                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                      • Slide 112
                                                                      • Slide 113
                                                                      • Slide 114
                                                                      • Autres Opeacuterations Utiles
                                                                      • Sous-Tables Parameacutetreacutees
                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                      • Liste de Choix Multibase
                                                                      • Liste de Choix Multibase (2)
                                                                      • Liste de Choix Multibase Reacutesultat
                                                                      • FIN
                                                                      • Slide 149

                                                                        36

                                                                        On peut utiliser la clause WHEREWHERE P IN (P1 P2)

                                                                        Alors les fonctions ne calculent les agreacutegats que sur P1 et P2

                                                                        On peut aussi restreindre la tabulation seulement PIVOT SP[p] IN (P1 P2)

                                                                        Mais cette clause naffecte pas les calculs des agreacutegats

                                                                        Peut-on appliquer la clause ORDER BY Si oui quel serait lrsquoeffet sur les valeurs pivoteacutees Peut-on ordonner par rapport agrave une fonction agreacutegat

                                                                        Comme on a fait pour les requecirctes agrave GROUP BY Peut-on appliquer la clause HAVING

                                                                        Tabulations Croiseacutees

                                                                        37

                                                                        XORSELECT S[S] SStatus SCity

                                                                        FROM S

                                                                        WHERE Status=10 Xor city=paris

                                                                        bull A noter le traitement du nul dans City

                                                                        38

                                                                        IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                        bull A noter le traitement du nul dans City

                                                                        39

                                                                        Sous-requecirctes

                                                                        A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                        clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                        rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                        sous-requecircte

                                                                        SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                        40

                                                                        Sous-requecirctes

                                                                        Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                        laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                        vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                        plus grande

                                                                        41

                                                                        Sous-requecirctes

                                                                        Skylinendash Tout objet non-domineacute (cacheacute

                                                                        totalement) par un autre

                                                                        SELECT X[s] X[p] qty delay

                                                                        FROM SP X

                                                                        where not exists

                                                                        (select from SP as Y

                                                                        where (Yqty gt= XQty and YDelay lt XDelay or

                                                                        Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                        order by X[p]

                                                                        42

                                                                        Sous-requecirctes Reacutesultat

                                                                        s p qty delay

                                                                        s1 p1 300 15

                                                                        s4 p1 200 13

                                                                        s3 p2 400 15

                                                                        s2 p2 300 12

                                                                        s1 p3 400 17

                                                                        s4 p4 300 11

                                                                        s4 p5 400 7

                                                                        s1 p6 100 8

                                                                        s p qty Delay

                                                                        s1 p1 300 15

                                                                        s1 p2 200 12

                                                                        s1 p3 400 17

                                                                        s1 p4 200 11

                                                                        s1 p5 100 7

                                                                        s1 p6 100 8

                                                                        s2 p2 300 12

                                                                        s3 p2 400 15

                                                                        s4 p1 200 13

                                                                        s4 p2 200 15

                                                                        s4 p4 300 11

                                                                        s4 p5 400 7

                                                                        S

                                                                        43

                                                                        Sous-requecirctes

                                                                        On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                        SELECT Count() AS TotalQty

                                                                        FROM (select distinct qty from sp)

                                                                        On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                        SELECT SP[s] SP[p] qty

                                                                        (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                        round(qtyTotalQty 3) AS Fraction

                                                                        FROM SP order by [s]

                                                                        44

                                                                        Sous-requecirctes

                                                                        s p qty TotalQty Fraction

                                                                        s1 p1 300 1300 0231

                                                                        s1 p6 100 1300 0077

                                                                        s1 p5 100 1300 0077

                                                                        s1 p4 200 1300 0154

                                                                        s1 p3 400 1300 0308

                                                                        s1 p2 200 1300 0154

                                                                        s2 p2 300 300 1

                                                                        s3 p2 400 400 1

                                                                        s4 p5 400 1100 0364

                                                                        s4 p4 300 1100 0273

                                                                        s4 p2 200 1100 0182

                                                                        bull ReacutesultatSP

                                                                        s p qty

                                                                        s1 p1 300

                                                                        s1 p2 200

                                                                        s1 p3 400

                                                                        s1 p4 200

                                                                        s1 p5 100

                                                                        s1 p6 100

                                                                        s2 p2 300

                                                                        s3 p2 400

                                                                        s4 p1 200

                                                                        s4 p2 200

                                                                        s4 p4 300

                                                                        s4 p5 400

                                                                        45

                                                                        Sous-requecirctesbull En Mode Graphique

                                                                        s p qtyTotalQty

                                                                        Fraction

                                                                        s1 p1 300 1300 0231

                                                                        s1 p6 100 1300 0077

                                                                        s1 p5 100 1300 0077

                                                                        s1 p4 200 1300 0154

                                                                        s1 p3 400 1300 0308

                                                                        s1 p2 200 1300 0154

                                                                        s2 p2 300 300 1

                                                                        s3 p2 400 400 1

                                                                        s4 p5 400 1100 0364

                                                                        s4 p4 300 1100 0273

                                                                        s4 p2 200 1100 0182

                                                                        46

                                                                        Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                        SELECT (select count(qty) from SP

                                                                        where qty gt= [seuil svp ]) count() as reacutesultat

                                                                        FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                        probabiliteacute conditionnelle

                                                                        47

                                                                        Clause FROM imbriqueacutee

                                                                        Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                        Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                        Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                        Agrave essayer

                                                                        48

                                                                        Clause FROM imbriqueacuteePossibiliteacutes

                                                                        ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                        ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                        MsAccess

                                                                        ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                        Mais la reacutefeacuterence au nom de la requecircte OK

                                                                        49

                                                                        Clause FROM imbriqueacutee

                                                                        SELECT sum(weight) AS [poids-total]

                                                                        FROM (SELECT weight pcity FROM P WHERE City like l

                                                                        UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                        50

                                                                        Clause FROM imbriqueacutee

                                                                        select avg(moy1) as [moyenne-des-moyennes]

                                                                        FROM

                                                                        (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                        UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                        51

                                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                        select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                        52

                                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                        totaux partiels et total geacuteneacuteral

                                                                        total_Id TotalQty

                                                                        s1 1300

                                                                        s2 300

                                                                        s3 400

                                                                        s4 400

                                                                        total Geacuteneacuteral

                                                                        2400

                                                                        53

                                                                        Valeurs nulles

                                                                        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                        Non WHERE HAVING GROUP BY (rel 1)

                                                                        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                        MsAccess Oui DISTINCT Autres clauses

                                                                        54

                                                                        Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                        1 x gt y est vrai ou faux

                                                                        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                        SELECT FROM S WHERE CITY =Paris

                                                                        UNION

                                                                        SELECT FROM S WHERE NOT CITY = Paris

                                                                        est toujours pourquoi faire simpleSELECT FROM S

                                                                        si on peut faire compliqueacute

                                                                        55

                                                                        Valeurs nullesValeurs nulles

                                                                        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                        56

                                                                        Valeurs nulles

                                                                        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                        LOG (nul) -gt Error A voir cas par cas

                                                                        57

                                                                        Fonctions Scalaires DateTemps

                                                                        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                        58

                                                                        Fonctions Scalaires DateTemps

                                                                        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                        weekday(day(now())-1) AS [day]FROM S

                                                                        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                        59

                                                                        Fonctions Scalaires DateTemps

                                                                        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                        Interval Explanation

                                                                        Yyyy Year

                                                                        q Quarter

                                                                        m Month

                                                                        y Day of year

                                                                        d Day

                                                                        w Weekday

                                                                        ww Week

                                                                        h Hour

                                                                        n Minute

                                                                        s Second

                                                                        60

                                                                        Fonctions Scalaires DateTemps

                                                                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                        Test DateDiff

                                                                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                        61

                                                                        Fonctions Scalaires DateTemps

                                                                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                        Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                        62

                                                                        Fonction Scalaire RND

                                                                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                        echantillon s rank

                                                                        s1 502628087997437E-02

                                                                        s4 0518015921115875

                                                                        s3 075702953338623

                                                                        63

                                                                        Fonction Scalaire RND

                                                                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                        Votre commentaire ici

                                                                        64

                                                                        Fonctions Financiegraveres

                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                        65

                                                                        Fonctions Financiegraveres

                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                        66

                                                                        Fonction DDB

                                                                        insert into DDB (cost salvage life factor amortiss period)

                                                                        select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                        DDB(cost salvage life period factor) as amortiss period

                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                        67

                                                                        Fonction DDB

                                                                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                        68

                                                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                        nombres neacutegatifs

                                                                        Fonction PMT

                                                                        69

                                                                        Fonction PMT

                                                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                        Fonction PMT calcul dannuiteacute demprunt

                                                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                        preacutesentevaleur_payeacutee surprime

                                                                        -16049 005 20 200000 -320980 -120980

                                                                        70

                                                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                        Et les nuls que log ne supporte pas

                                                                        Anneacutee relative

                                                                        Taux

                                                                        1 4

                                                                        2 4

                                                                        3 3

                                                                        4 5

                                                                        5 5

                                                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                                                        71

                                                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                        est eacutequivalente agrave

                                                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                        WHERE XP = SPP) FROM SP

                                                                        Testez

                                                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                        72

                                                                        LIST Function La requecircte

                                                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                        Comme les tabulations croiseacutees

                                                                        ndash Mais en + simple

                                                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                        ndash En mono attribut (2004)

                                                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                        sous-formulaires

                                                                        73

                                                                        LIST Function

                                                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                        74

                                                                        GROUP BY avec WHERE

                                                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                        75

                                                                        GROUP BY

                                                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                        Pourquoi

                                                                        76

                                                                        GROUP BY avec HAVING

                                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                        77

                                                                        T-GROUP BY Proposeacute pour SQL

                                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                        Le rocircle de -join par rapport agrave equi-join

                                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                        78

                                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                        FROM SP Vrai ou Faux

                                                                        79

                                                                        T-GROUP BY

                                                                        Reacutesultat

                                                                        part avg_qty_other_parts part_avg_qty

                                                                        p1 250 300

                                                                        p2 262 250

                                                                        p3 245 400

                                                                        p4 260 250

                                                                        p5 260 250

                                                                        p6 272 100

                                                                        80

                                                                        T-GROUP BY

                                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                        81

                                                                        Rangs Non-Denses(Non Dense Ranking)

                                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                        s p qtyND-rank

                                                                        s4 p5 400 1

                                                                        s3 p2 400 1

                                                                        s1 p3 400 1

                                                                        s4 p4 300 4

                                                                        s2 p2 300 4

                                                                        s1 p1 300 4

                                                                        s4 p2 200 7

                                                                        s1 p4 200 7

                                                                        s1 p2 200 7

                                                                        s4 p1 200 7

                                                                        s1 p6 100 11

                                                                        s1 p5 100 11

                                                                        82

                                                                        Rangs Non-Denses(Graphique MsAccess)

                                                                        s p qty ND-rank

                                                                        s4 p5 400 1

                                                                        s3 p2 400 1

                                                                        s1 p3 400 1

                                                                        s4 p4 300 4

                                                                        s2 p2 300 4

                                                                        s1 p1 300 4

                                                                        s4 p2 200 7

                                                                        s1 p4 200 7

                                                                        s1 p2 200 7

                                                                        s4 p1 200 7

                                                                        s1 p6 100 11

                                                                        s1 p5 100 11

                                                                        83

                                                                        Rangs Denses(Dense Ranking)

                                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                        s p qtyD-rank

                                                                        s1 p3 400 1

                                                                        s3 p2 400 1

                                                                        s4 p5 400 1

                                                                        s1 p1 300 2

                                                                        s2 p2 300 2

                                                                        s4 p4 300 2

                                                                        s1 p4 200 3

                                                                        s1 p2 200 3

                                                                        s4 p2 200 3

                                                                        s4 p1 200 3

                                                                        s1 p6 100 4

                                                                        s1 p5 100 4

                                                                        84

                                                                        Rangs DensesGraphique MsAccess

                                                                        s p qty D-rank

                                                                        s1 p3 400 1

                                                                        s3 p2 400 1

                                                                        s4 p5 400 1

                                                                        s1 p1 300 2

                                                                        s2 p2 300 2

                                                                        s4 p4 300 2

                                                                        s1 p4 200 3

                                                                        s1 p2 200 3

                                                                        s4 p2 200 3

                                                                        s4 p1 200 3

                                                                        s1 p6 100 4

                                                                        s1 p5 100 4

                                                                        85

                                                                        Distribution

                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                        86

                                                                        Reacutesultat

                                                                        s Distribution

                                                                        s1 0419

                                                                        s2 0097

                                                                        s3 0129

                                                                        s4 0355

                                                                        87

                                                                        Distribution Cumulative

                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                        FROM SP

                                                                        ORDER BY SP[s]

                                                                        88

                                                                        Reacutesultat

                                                                        sDistribution Cumuleacutee

                                                                        s1 0419

                                                                        s2 0516

                                                                        s3 0645

                                                                        s4 1

                                                                        89

                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                        90

                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                        FROM S

                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                        s1 Smith Paris good good

                                                                        s2 Jones 100 london good VGood

                                                                        s3 Blake 30 Paris good good

                                                                        s4 Clark 10 london OK OK

                                                                        s5 Adams 30 Athens good good

                                                                        bull Notez le traitement du null

                                                                        91

                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                        FROM P where weight gt 13

                                                                        union

                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                        UNION

                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                        ORDER BY warning DESC weight DESC

                                                                        pname weight Warning

                                                                        cam 19 Very Heavy

                                                                        cog 19 Very Heavy

                                                                        bolt 17 Very Heavy

                                                                        nut 14 Very Heavy

                                                                        screw 14 Very Heavy

                                                                        nut 14 Quite Heavy

                                                                        screw 14 Quite Heavy

                                                                        screw 12 Quite Heavy

                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                        92

                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                        On considegravere AVG(Qty1) pour Qty

                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                        SP

                                                                        s p qtyQty1

                                                                        s1 p1 300 400

                                                                        s1 p2 200

                                                                        s1 p3 400 600

                                                                        s1 p4 200 300

                                                                        s1 p5 100

                                                                        s1 p6 100 200

                                                                        s2 p2 300 500

                                                                        s3 p2 400

                                                                        s4 p1 200 100

                                                                        s4 p2 200

                                                                        s4 p4 300

                                                                        s4 p5 400

                                                                        93

                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                        SP

                                                                        s p qtyQty1

                                                                        s1 p1 300 400

                                                                        s1 p2 200

                                                                        s1 p3 400 600

                                                                        s1 p4 200 300

                                                                        s1 p5 100

                                                                        s1 p6 100 200

                                                                        s2 p2 300 500

                                                                        s3 p2 400

                                                                        s4 p1 200 100

                                                                        s4 p2 200

                                                                        s4 p4 300

                                                                        s4 p5 400

                                                                        qty for partpredicted or

                                                                        unknown Qty1

                                                                        100 p5

                                                                        100 predicted value 200

                                                                        200 p2

                                                                        200 predicted value 200

                                                                        300 p4

                                                                        300 predicted value 450

                                                                        400 p2

                                                                        400 p5

                                                                        400 predicted value 600

                                                                        94

                                                                        Tendance

                                                                        qty Qty1

                                                                        100 200

                                                                        200 300

                                                                        300 400

                                                                        400 600

                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                        Graph 3D avec Qty en abscisses

                                                                        95

                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                        30102008 120 27102008 4

                                                                        25102008 131 22102008 4

                                                                        23102008 127 20102008 4

                                                                        17102008 269 14102008 4

                                                                        15102008 60 12102008 4

                                                                        11102008 295 08102008 4

                                                                        09102008 340 06102008 4

                                                                        08102008 324 05102008 4

                                                                        06102008 315 03102008 4

                                                                        96

                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                        Graphique avec une info-bulle

                                                                        97

                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                        glissantes

                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                        bull MAVG

                                                                        bull MSUM

                                                                        bull MDIFF

                                                                        bull Voir Teradata + loin

                                                                        98

                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                        99

                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                        100

                                                                        Seacuteries financiegraveres

                                                                        capital taux nval apregraves n ans

                                                                        taux1val1 apregraves n ans

                                                                        GainAbs GainRel

                                                                        100 005 1 105 006 106 1 1

                                                                        100 005 2 110 006 112 2 2

                                                                        100 005 3 115 006 119 4 4

                                                                        100 005 4 121 006 126 5 5

                                                                        100 005 5 127 006 133 6 6

                                                                        100 005 6 134 006 141 7 7

                                                                        100 005 7 140 006 150 10 10

                                                                        100 005 8 147 006 159 12 12

                                                                        100 005 9 155 006 168 13 13

                                                                        100 005 10 162 006 179 17 17

                                                                        100 005 11 171 006 189 18 18

                                                                        100 005 12 179 006 201 22 22

                                                                        100 005 13 188 006 213 25 25

                                                                        100 005 14 197 006 226 29 29

                                                                        100 005 15 207 006 239 32 32

                                                                        100 005 16 218 006 254 36 36

                                                                        100 005 17 229 006 269 40 40

                                                                        100 005 18 240 006 285 45 45

                                                                        100 005 19 252 006 302 50 50

                                                                        100 005 20 265 006 320 55 55

                                                                        101

                                                                        Seacuteries financiegraveres

                                                                        102

                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                        financiers de la table Produits

                                                                        bull Dans la limite L de la somme donneacutee

                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                        bull En ordre descendant de prix

                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                        bull Plusieurs actionshellip

                                                                        103

                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                        P prix

                                                                        p3 200

                                                                        p1 200

                                                                        p2 400

                                                                        p3 200

                                                                        p4 100

                                                                        p6 100

                                                                        p5 300

                                                                        p8 300

                                                                        p7 400

                                                                        p10 200

                                                                        p12 300

                                                                        p13 300

                                                                        104

                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                        ORDER BY 4 desc 8 123

                                                                        105

                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                        106

                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                        107

                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                        108

                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                        109

                                                                        CUBE(DB2 amp SQL-Server)

                                                                        CUBE(DB2 amp SQL-Server)

                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                        110

                                                                        GROUPING SETS

                                                                        On indique explicitement les groupesndash entre ()

                                                                        le groupe () est constitueacute de toute la table

                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                        WHERE SP P = PP AND SP S = SS

                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                        HAVING tot-qty gt 100

                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                        111

                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                        Peut ecirctre laborieux pour le CUBE

                                                                        112

                                                                        ROLLUP

                                                                        Remarquez le laquo null as cityraquo

                                                                        113

                                                                        ROLLUP

                                                                        114

                                                                        ROLLUP

                                                                        Et le CUBE

                                                                        Une solution pour l ambiguiumlteacute

                                                                        de certains nuls

                                                                        115

                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                        Wiley (publ)

                                                                        116

                                                                        Sous-Tables Parameacutetreacutees

                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                        117

                                                                        Sous-Tables Parameacutetreacutees

                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                        118

                                                                        Sous-Tables Parameacutetreacutees

                                                                        119

                                                                        Sous-Tables Parameacutetreacutees

                                                                        120

                                                                        Sous-Tables Parameacutetreacutees

                                                                        121

                                                                        Sous-Tables Parameacutetreacutees

                                                                        122

                                                                        Sous-Tables Parameacutetreacutees

                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                        123

                                                                        Sous-Tables Parameacutetreacutees

                                                                        Exeacutecution autonome

                                                                        124

                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                        hellip

                                                                        125

                                                                        Liste de Choix Multibase

                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                        126

                                                                        Liste de Choix MultibaseReacutesultat

                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                        Tregraves bonne question agrave Microsoft

                                                                        148

                                                                        FIN

                                                                        149

                                                                        • SQL Avanceacute 2010
                                                                        • Quoi amp Pourquoi
                                                                        • Slide 3
                                                                        • Synonymes
                                                                        • Noms dattributs
                                                                        • Slide 6
                                                                        • Slide 7
                                                                        • Slide 8
                                                                        • Insertion dans une Vue
                                                                        • Insertion dans une Vue (2)
                                                                        • MAJ drsquoune Vue MsAccess
                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                        • Suppression dans une Vue MsAccess
                                                                        • MsAccess Leacutegendes
                                                                        • Expressions de valeur
                                                                        • Expressions de valeur (2)
                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                        • UNION et Noms Drsquoattributs
                                                                        • UNION et ORDER BY
                                                                        • ORDER BY et expressions de valeur
                                                                        • ORDER BY et expressions de valeur (2)
                                                                        • Ordre de prioriteacute dopeacuterations
                                                                        • Preacutedicat TOP
                                                                        • Preacutedicat TOP (2)
                                                                        • Clause BETWEEN
                                                                        • Limitations de NOT
                                                                        • ANY et ALL
                                                                        • Injection SQL
                                                                        • Injection SQL (2)
                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                        • Tabulations Croiseacutees
                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                        • Tabulations Croiseacutees (2)
                                                                        • Tabulations Croiseacutees (3)
                                                                        • Tabulations Croiseacutees (4)
                                                                        • Tabulations Croiseacutees (5)
                                                                        • XOR
                                                                        • IMP
                                                                        • Sous-requecirctes
                                                                        • Sous-requecirctes (2)
                                                                        • Sous-requecirctes (3)
                                                                        • Sous-requecirctes (4)
                                                                        • Sous-requecirctes (5)
                                                                        • Sous-requecirctes (6)
                                                                        • Sous-requecirctes (7)
                                                                        • Application aux Probabiliteacutes
                                                                        • Clause FROM imbriqueacutee
                                                                        • Clause FROM imbriqueacutee (2)
                                                                        • Clause FROM imbriqueacutee (3)
                                                                        • Clause FROM imbriqueacutee (4)
                                                                        • Clause FROM imbriqueacutee (5)
                                                                        • Clause FROM imbriqueacutee (6)
                                                                        • Valeurs nulles
                                                                        • Valeurs nulles (2)
                                                                        • Valeurs nulles (3)
                                                                        • Valeurs nulles (4)
                                                                        • Fonctions Scalaires DateTemps
                                                                        • Fonctions Scalaires DateTemps (2)
                                                                        • Fonctions Scalaires DateTemps (3)
                                                                        • Fonctions Scalaires DateTemps (4)
                                                                        • Fonctions Scalaires DateTemps (5)
                                                                        • Fonction Scalaire RND
                                                                        • Fonction Scalaire RND (2)
                                                                        • Fonctions Financiegraveres
                                                                        • Fonctions Financiegraveres (2)
                                                                        • Fonction DDB
                                                                        • Fonction DDB (2)
                                                                        • Fonction PMT
                                                                        • Fonction PMT (2)
                                                                        • Placement agrave taux variable
                                                                        • GROUP BY
                                                                        • LIST Function
                                                                        • LIST Function (2)
                                                                        • GROUP BY avec WHERE
                                                                        • GROUP BY (2)
                                                                        • GROUP BY avec HAVING
                                                                        • T-GROUP BY
                                                                        • T-GROUP BY (2)
                                                                        • T-GROUP BY (3)
                                                                        • T-GROUP BY (4)
                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                        • Rangs Denses (Dense Ranking)
                                                                        • Rangs Denses Graphique MsAccess
                                                                        • Distribution
                                                                        • Reacutesultat
                                                                        • Distribution Cumulative
                                                                        • Reacutesultat (2)
                                                                        • Cateacutegorisation
                                                                        • Cateacutegorisation (2)
                                                                        • Cateacutegorisation (3)
                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                        • Tendance
                                                                        • Moyenne Glissante
                                                                        • Moyenne Glissante (2)
                                                                        • Moyenne Glissante (3)
                                                                        • Seacuteries financiegraveres
                                                                        • Seacuteries financiegraveres (2)
                                                                        • Seacuteries financiegraveres (3)
                                                                        • Seacuteries financiegraveres (4)
                                                                        • Creacuteation drsquoun Portefeuille
                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                        • CUBE (DB2 amp SQL-Server)
                                                                        • GROUPING SETS
                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                        • Slide 112
                                                                        • Slide 113
                                                                        • Slide 114
                                                                        • Autres Opeacuterations Utiles
                                                                        • Sous-Tables Parameacutetreacutees
                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                        • Liste de Choix Multibase
                                                                        • Liste de Choix Multibase (2)
                                                                        • Liste de Choix Multibase Reacutesultat
                                                                        • FIN
                                                                        • Slide 149

                                                                          37

                                                                          XORSELECT S[S] SStatus SCity

                                                                          FROM S

                                                                          WHERE Status=10 Xor city=paris

                                                                          bull A noter le traitement du nul dans City

                                                                          38

                                                                          IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                          bull A noter le traitement du nul dans City

                                                                          39

                                                                          Sous-requecirctes

                                                                          A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                          clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                          rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                          sous-requecircte

                                                                          SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                          40

                                                                          Sous-requecirctes

                                                                          Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                          laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                          vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                          plus grande

                                                                          41

                                                                          Sous-requecirctes

                                                                          Skylinendash Tout objet non-domineacute (cacheacute

                                                                          totalement) par un autre

                                                                          SELECT X[s] X[p] qty delay

                                                                          FROM SP X

                                                                          where not exists

                                                                          (select from SP as Y

                                                                          where (Yqty gt= XQty and YDelay lt XDelay or

                                                                          Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                          order by X[p]

                                                                          42

                                                                          Sous-requecirctes Reacutesultat

                                                                          s p qty delay

                                                                          s1 p1 300 15

                                                                          s4 p1 200 13

                                                                          s3 p2 400 15

                                                                          s2 p2 300 12

                                                                          s1 p3 400 17

                                                                          s4 p4 300 11

                                                                          s4 p5 400 7

                                                                          s1 p6 100 8

                                                                          s p qty Delay

                                                                          s1 p1 300 15

                                                                          s1 p2 200 12

                                                                          s1 p3 400 17

                                                                          s1 p4 200 11

                                                                          s1 p5 100 7

                                                                          s1 p6 100 8

                                                                          s2 p2 300 12

                                                                          s3 p2 400 15

                                                                          s4 p1 200 13

                                                                          s4 p2 200 15

                                                                          s4 p4 300 11

                                                                          s4 p5 400 7

                                                                          S

                                                                          43

                                                                          Sous-requecirctes

                                                                          On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                          SELECT Count() AS TotalQty

                                                                          FROM (select distinct qty from sp)

                                                                          On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                          SELECT SP[s] SP[p] qty

                                                                          (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                          round(qtyTotalQty 3) AS Fraction

                                                                          FROM SP order by [s]

                                                                          44

                                                                          Sous-requecirctes

                                                                          s p qty TotalQty Fraction

                                                                          s1 p1 300 1300 0231

                                                                          s1 p6 100 1300 0077

                                                                          s1 p5 100 1300 0077

                                                                          s1 p4 200 1300 0154

                                                                          s1 p3 400 1300 0308

                                                                          s1 p2 200 1300 0154

                                                                          s2 p2 300 300 1

                                                                          s3 p2 400 400 1

                                                                          s4 p5 400 1100 0364

                                                                          s4 p4 300 1100 0273

                                                                          s4 p2 200 1100 0182

                                                                          bull ReacutesultatSP

                                                                          s p qty

                                                                          s1 p1 300

                                                                          s1 p2 200

                                                                          s1 p3 400

                                                                          s1 p4 200

                                                                          s1 p5 100

                                                                          s1 p6 100

                                                                          s2 p2 300

                                                                          s3 p2 400

                                                                          s4 p1 200

                                                                          s4 p2 200

                                                                          s4 p4 300

                                                                          s4 p5 400

                                                                          45

                                                                          Sous-requecirctesbull En Mode Graphique

                                                                          s p qtyTotalQty

                                                                          Fraction

                                                                          s1 p1 300 1300 0231

                                                                          s1 p6 100 1300 0077

                                                                          s1 p5 100 1300 0077

                                                                          s1 p4 200 1300 0154

                                                                          s1 p3 400 1300 0308

                                                                          s1 p2 200 1300 0154

                                                                          s2 p2 300 300 1

                                                                          s3 p2 400 400 1

                                                                          s4 p5 400 1100 0364

                                                                          s4 p4 300 1100 0273

                                                                          s4 p2 200 1100 0182

                                                                          46

                                                                          Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                          SELECT (select count(qty) from SP

                                                                          where qty gt= [seuil svp ]) count() as reacutesultat

                                                                          FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                          probabiliteacute conditionnelle

                                                                          47

                                                                          Clause FROM imbriqueacutee

                                                                          Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                          Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                          Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                          Agrave essayer

                                                                          48

                                                                          Clause FROM imbriqueacuteePossibiliteacutes

                                                                          ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                          ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                          MsAccess

                                                                          ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                          Mais la reacutefeacuterence au nom de la requecircte OK

                                                                          49

                                                                          Clause FROM imbriqueacutee

                                                                          SELECT sum(weight) AS [poids-total]

                                                                          FROM (SELECT weight pcity FROM P WHERE City like l

                                                                          UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                          50

                                                                          Clause FROM imbriqueacutee

                                                                          select avg(moy1) as [moyenne-des-moyennes]

                                                                          FROM

                                                                          (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                          UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                          51

                                                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                          select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                          52

                                                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                          totaux partiels et total geacuteneacuteral

                                                                          total_Id TotalQty

                                                                          s1 1300

                                                                          s2 300

                                                                          s3 400

                                                                          s4 400

                                                                          total Geacuteneacuteral

                                                                          2400

                                                                          53

                                                                          Valeurs nulles

                                                                          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                          Non WHERE HAVING GROUP BY (rel 1)

                                                                          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                          MsAccess Oui DISTINCT Autres clauses

                                                                          54

                                                                          Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                          1 x gt y est vrai ou faux

                                                                          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                          SELECT FROM S WHERE CITY =Paris

                                                                          UNION

                                                                          SELECT FROM S WHERE NOT CITY = Paris

                                                                          est toujours pourquoi faire simpleSELECT FROM S

                                                                          si on peut faire compliqueacute

                                                                          55

                                                                          Valeurs nullesValeurs nulles

                                                                          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                          56

                                                                          Valeurs nulles

                                                                          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                          LOG (nul) -gt Error A voir cas par cas

                                                                          57

                                                                          Fonctions Scalaires DateTemps

                                                                          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                          58

                                                                          Fonctions Scalaires DateTemps

                                                                          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                          weekday(day(now())-1) AS [day]FROM S

                                                                          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                          59

                                                                          Fonctions Scalaires DateTemps

                                                                          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                          Interval Explanation

                                                                          Yyyy Year

                                                                          q Quarter

                                                                          m Month

                                                                          y Day of year

                                                                          d Day

                                                                          w Weekday

                                                                          ww Week

                                                                          h Hour

                                                                          n Minute

                                                                          s Second

                                                                          60

                                                                          Fonctions Scalaires DateTemps

                                                                          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                          Test DateDiff

                                                                          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                          61

                                                                          Fonctions Scalaires DateTemps

                                                                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                          Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                          62

                                                                          Fonction Scalaire RND

                                                                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                          echantillon s rank

                                                                          s1 502628087997437E-02

                                                                          s4 0518015921115875

                                                                          s3 075702953338623

                                                                          63

                                                                          Fonction Scalaire RND

                                                                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                          Votre commentaire ici

                                                                          64

                                                                          Fonctions Financiegraveres

                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                          65

                                                                          Fonctions Financiegraveres

                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                          66

                                                                          Fonction DDB

                                                                          insert into DDB (cost salvage life factor amortiss period)

                                                                          select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                          DDB(cost salvage life period factor) as amortiss period

                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                          67

                                                                          Fonction DDB

                                                                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                          68

                                                                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                          nombres neacutegatifs

                                                                          Fonction PMT

                                                                          69

                                                                          Fonction PMT

                                                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                          Fonction PMT calcul dannuiteacute demprunt

                                                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                          preacutesentevaleur_payeacutee surprime

                                                                          -16049 005 20 200000 -320980 -120980

                                                                          70

                                                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                          Et les nuls que log ne supporte pas

                                                                          Anneacutee relative

                                                                          Taux

                                                                          1 4

                                                                          2 4

                                                                          3 3

                                                                          4 5

                                                                          5 5

                                                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                                                          71

                                                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                          est eacutequivalente agrave

                                                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                          WHERE XP = SPP) FROM SP

                                                                          Testez

                                                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                          72

                                                                          LIST Function La requecircte

                                                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                          Comme les tabulations croiseacutees

                                                                          ndash Mais en + simple

                                                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                          ndash En mono attribut (2004)

                                                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                          sous-formulaires

                                                                          73

                                                                          LIST Function

                                                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                          74

                                                                          GROUP BY avec WHERE

                                                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                          75

                                                                          GROUP BY

                                                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                          Pourquoi

                                                                          76

                                                                          GROUP BY avec HAVING

                                                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                          77

                                                                          T-GROUP BY Proposeacute pour SQL

                                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                          Le rocircle de -join par rapport agrave equi-join

                                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                          78

                                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                          FROM SP Vrai ou Faux

                                                                          79

                                                                          T-GROUP BY

                                                                          Reacutesultat

                                                                          part avg_qty_other_parts part_avg_qty

                                                                          p1 250 300

                                                                          p2 262 250

                                                                          p3 245 400

                                                                          p4 260 250

                                                                          p5 260 250

                                                                          p6 272 100

                                                                          80

                                                                          T-GROUP BY

                                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                          81

                                                                          Rangs Non-Denses(Non Dense Ranking)

                                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                          s p qtyND-rank

                                                                          s4 p5 400 1

                                                                          s3 p2 400 1

                                                                          s1 p3 400 1

                                                                          s4 p4 300 4

                                                                          s2 p2 300 4

                                                                          s1 p1 300 4

                                                                          s4 p2 200 7

                                                                          s1 p4 200 7

                                                                          s1 p2 200 7

                                                                          s4 p1 200 7

                                                                          s1 p6 100 11

                                                                          s1 p5 100 11

                                                                          82

                                                                          Rangs Non-Denses(Graphique MsAccess)

                                                                          s p qty ND-rank

                                                                          s4 p5 400 1

                                                                          s3 p2 400 1

                                                                          s1 p3 400 1

                                                                          s4 p4 300 4

                                                                          s2 p2 300 4

                                                                          s1 p1 300 4

                                                                          s4 p2 200 7

                                                                          s1 p4 200 7

                                                                          s1 p2 200 7

                                                                          s4 p1 200 7

                                                                          s1 p6 100 11

                                                                          s1 p5 100 11

                                                                          83

                                                                          Rangs Denses(Dense Ranking)

                                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                          s p qtyD-rank

                                                                          s1 p3 400 1

                                                                          s3 p2 400 1

                                                                          s4 p5 400 1

                                                                          s1 p1 300 2

                                                                          s2 p2 300 2

                                                                          s4 p4 300 2

                                                                          s1 p4 200 3

                                                                          s1 p2 200 3

                                                                          s4 p2 200 3

                                                                          s4 p1 200 3

                                                                          s1 p6 100 4

                                                                          s1 p5 100 4

                                                                          84

                                                                          Rangs DensesGraphique MsAccess

                                                                          s p qty D-rank

                                                                          s1 p3 400 1

                                                                          s3 p2 400 1

                                                                          s4 p5 400 1

                                                                          s1 p1 300 2

                                                                          s2 p2 300 2

                                                                          s4 p4 300 2

                                                                          s1 p4 200 3

                                                                          s1 p2 200 3

                                                                          s4 p2 200 3

                                                                          s4 p1 200 3

                                                                          s1 p6 100 4

                                                                          s1 p5 100 4

                                                                          85

                                                                          Distribution

                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                          86

                                                                          Reacutesultat

                                                                          s Distribution

                                                                          s1 0419

                                                                          s2 0097

                                                                          s3 0129

                                                                          s4 0355

                                                                          87

                                                                          Distribution Cumulative

                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                          FROM SP

                                                                          ORDER BY SP[s]

                                                                          88

                                                                          Reacutesultat

                                                                          sDistribution Cumuleacutee

                                                                          s1 0419

                                                                          s2 0516

                                                                          s3 0645

                                                                          s4 1

                                                                          89

                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                          90

                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                          FROM S

                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                          s1 Smith Paris good good

                                                                          s2 Jones 100 london good VGood

                                                                          s3 Blake 30 Paris good good

                                                                          s4 Clark 10 london OK OK

                                                                          s5 Adams 30 Athens good good

                                                                          bull Notez le traitement du null

                                                                          91

                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                          FROM P where weight gt 13

                                                                          union

                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                          UNION

                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                          ORDER BY warning DESC weight DESC

                                                                          pname weight Warning

                                                                          cam 19 Very Heavy

                                                                          cog 19 Very Heavy

                                                                          bolt 17 Very Heavy

                                                                          nut 14 Very Heavy

                                                                          screw 14 Very Heavy

                                                                          nut 14 Quite Heavy

                                                                          screw 14 Quite Heavy

                                                                          screw 12 Quite Heavy

                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                          92

                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                          On considegravere AVG(Qty1) pour Qty

                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                          SP

                                                                          s p qtyQty1

                                                                          s1 p1 300 400

                                                                          s1 p2 200

                                                                          s1 p3 400 600

                                                                          s1 p4 200 300

                                                                          s1 p5 100

                                                                          s1 p6 100 200

                                                                          s2 p2 300 500

                                                                          s3 p2 400

                                                                          s4 p1 200 100

                                                                          s4 p2 200

                                                                          s4 p4 300

                                                                          s4 p5 400

                                                                          93

                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                          SP

                                                                          s p qtyQty1

                                                                          s1 p1 300 400

                                                                          s1 p2 200

                                                                          s1 p3 400 600

                                                                          s1 p4 200 300

                                                                          s1 p5 100

                                                                          s1 p6 100 200

                                                                          s2 p2 300 500

                                                                          s3 p2 400

                                                                          s4 p1 200 100

                                                                          s4 p2 200

                                                                          s4 p4 300

                                                                          s4 p5 400

                                                                          qty for partpredicted or

                                                                          unknown Qty1

                                                                          100 p5

                                                                          100 predicted value 200

                                                                          200 p2

                                                                          200 predicted value 200

                                                                          300 p4

                                                                          300 predicted value 450

                                                                          400 p2

                                                                          400 p5

                                                                          400 predicted value 600

                                                                          94

                                                                          Tendance

                                                                          qty Qty1

                                                                          100 200

                                                                          200 300

                                                                          300 400

                                                                          400 600

                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                          Graph 3D avec Qty en abscisses

                                                                          95

                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                          30102008 120 27102008 4

                                                                          25102008 131 22102008 4

                                                                          23102008 127 20102008 4

                                                                          17102008 269 14102008 4

                                                                          15102008 60 12102008 4

                                                                          11102008 295 08102008 4

                                                                          09102008 340 06102008 4

                                                                          08102008 324 05102008 4

                                                                          06102008 315 03102008 4

                                                                          96

                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                          Graphique avec une info-bulle

                                                                          97

                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                          glissantes

                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                          bull MAVG

                                                                          bull MSUM

                                                                          bull MDIFF

                                                                          bull Voir Teradata + loin

                                                                          98

                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                          99

                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                          100

                                                                          Seacuteries financiegraveres

                                                                          capital taux nval apregraves n ans

                                                                          taux1val1 apregraves n ans

                                                                          GainAbs GainRel

                                                                          100 005 1 105 006 106 1 1

                                                                          100 005 2 110 006 112 2 2

                                                                          100 005 3 115 006 119 4 4

                                                                          100 005 4 121 006 126 5 5

                                                                          100 005 5 127 006 133 6 6

                                                                          100 005 6 134 006 141 7 7

                                                                          100 005 7 140 006 150 10 10

                                                                          100 005 8 147 006 159 12 12

                                                                          100 005 9 155 006 168 13 13

                                                                          100 005 10 162 006 179 17 17

                                                                          100 005 11 171 006 189 18 18

                                                                          100 005 12 179 006 201 22 22

                                                                          100 005 13 188 006 213 25 25

                                                                          100 005 14 197 006 226 29 29

                                                                          100 005 15 207 006 239 32 32

                                                                          100 005 16 218 006 254 36 36

                                                                          100 005 17 229 006 269 40 40

                                                                          100 005 18 240 006 285 45 45

                                                                          100 005 19 252 006 302 50 50

                                                                          100 005 20 265 006 320 55 55

                                                                          101

                                                                          Seacuteries financiegraveres

                                                                          102

                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                          financiers de la table Produits

                                                                          bull Dans la limite L de la somme donneacutee

                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                          bull En ordre descendant de prix

                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                          bull Plusieurs actionshellip

                                                                          103

                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                          P prix

                                                                          p3 200

                                                                          p1 200

                                                                          p2 400

                                                                          p3 200

                                                                          p4 100

                                                                          p6 100

                                                                          p5 300

                                                                          p8 300

                                                                          p7 400

                                                                          p10 200

                                                                          p12 300

                                                                          p13 300

                                                                          104

                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                          ORDER BY 4 desc 8 123

                                                                          105

                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                          106

                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                          107

                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                          108

                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                          109

                                                                          CUBE(DB2 amp SQL-Server)

                                                                          CUBE(DB2 amp SQL-Server)

                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                          110

                                                                          GROUPING SETS

                                                                          On indique explicitement les groupesndash entre ()

                                                                          le groupe () est constitueacute de toute la table

                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                          WHERE SP P = PP AND SP S = SS

                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                          HAVING tot-qty gt 100

                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                          111

                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                          Peut ecirctre laborieux pour le CUBE

                                                                          112

                                                                          ROLLUP

                                                                          Remarquez le laquo null as cityraquo

                                                                          113

                                                                          ROLLUP

                                                                          114

                                                                          ROLLUP

                                                                          Et le CUBE

                                                                          Une solution pour l ambiguiumlteacute

                                                                          de certains nuls

                                                                          115

                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                          Wiley (publ)

                                                                          116

                                                                          Sous-Tables Parameacutetreacutees

                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                          117

                                                                          Sous-Tables Parameacutetreacutees

                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                          118

                                                                          Sous-Tables Parameacutetreacutees

                                                                          119

                                                                          Sous-Tables Parameacutetreacutees

                                                                          120

                                                                          Sous-Tables Parameacutetreacutees

                                                                          121

                                                                          Sous-Tables Parameacutetreacutees

                                                                          122

                                                                          Sous-Tables Parameacutetreacutees

                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                          123

                                                                          Sous-Tables Parameacutetreacutees

                                                                          Exeacutecution autonome

                                                                          124

                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                          hellip

                                                                          125

                                                                          Liste de Choix Multibase

                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                          126

                                                                          Liste de Choix MultibaseReacutesultat

                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                          Tregraves bonne question agrave Microsoft

                                                                          148

                                                                          FIN

                                                                          149

                                                                          • SQL Avanceacute 2010
                                                                          • Quoi amp Pourquoi
                                                                          • Slide 3
                                                                          • Synonymes
                                                                          • Noms dattributs
                                                                          • Slide 6
                                                                          • Slide 7
                                                                          • Slide 8
                                                                          • Insertion dans une Vue
                                                                          • Insertion dans une Vue (2)
                                                                          • MAJ drsquoune Vue MsAccess
                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                          • Suppression dans une Vue MsAccess
                                                                          • MsAccess Leacutegendes
                                                                          • Expressions de valeur
                                                                          • Expressions de valeur (2)
                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                          • UNION et Noms Drsquoattributs
                                                                          • UNION et ORDER BY
                                                                          • ORDER BY et expressions de valeur
                                                                          • ORDER BY et expressions de valeur (2)
                                                                          • Ordre de prioriteacute dopeacuterations
                                                                          • Preacutedicat TOP
                                                                          • Preacutedicat TOP (2)
                                                                          • Clause BETWEEN
                                                                          • Limitations de NOT
                                                                          • ANY et ALL
                                                                          • Injection SQL
                                                                          • Injection SQL (2)
                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                          • Tabulations Croiseacutees
                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                          • Tabulations Croiseacutees (2)
                                                                          • Tabulations Croiseacutees (3)
                                                                          • Tabulations Croiseacutees (4)
                                                                          • Tabulations Croiseacutees (5)
                                                                          • XOR
                                                                          • IMP
                                                                          • Sous-requecirctes
                                                                          • Sous-requecirctes (2)
                                                                          • Sous-requecirctes (3)
                                                                          • Sous-requecirctes (4)
                                                                          • Sous-requecirctes (5)
                                                                          • Sous-requecirctes (6)
                                                                          • Sous-requecirctes (7)
                                                                          • Application aux Probabiliteacutes
                                                                          • Clause FROM imbriqueacutee
                                                                          • Clause FROM imbriqueacutee (2)
                                                                          • Clause FROM imbriqueacutee (3)
                                                                          • Clause FROM imbriqueacutee (4)
                                                                          • Clause FROM imbriqueacutee (5)
                                                                          • Clause FROM imbriqueacutee (6)
                                                                          • Valeurs nulles
                                                                          • Valeurs nulles (2)
                                                                          • Valeurs nulles (3)
                                                                          • Valeurs nulles (4)
                                                                          • Fonctions Scalaires DateTemps
                                                                          • Fonctions Scalaires DateTemps (2)
                                                                          • Fonctions Scalaires DateTemps (3)
                                                                          • Fonctions Scalaires DateTemps (4)
                                                                          • Fonctions Scalaires DateTemps (5)
                                                                          • Fonction Scalaire RND
                                                                          • Fonction Scalaire RND (2)
                                                                          • Fonctions Financiegraveres
                                                                          • Fonctions Financiegraveres (2)
                                                                          • Fonction DDB
                                                                          • Fonction DDB (2)
                                                                          • Fonction PMT
                                                                          • Fonction PMT (2)
                                                                          • Placement agrave taux variable
                                                                          • GROUP BY
                                                                          • LIST Function
                                                                          • LIST Function (2)
                                                                          • GROUP BY avec WHERE
                                                                          • GROUP BY (2)
                                                                          • GROUP BY avec HAVING
                                                                          • T-GROUP BY
                                                                          • T-GROUP BY (2)
                                                                          • T-GROUP BY (3)
                                                                          • T-GROUP BY (4)
                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                          • Rangs Denses (Dense Ranking)
                                                                          • Rangs Denses Graphique MsAccess
                                                                          • Distribution
                                                                          • Reacutesultat
                                                                          • Distribution Cumulative
                                                                          • Reacutesultat (2)
                                                                          • Cateacutegorisation
                                                                          • Cateacutegorisation (2)
                                                                          • Cateacutegorisation (3)
                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                          • Tendance
                                                                          • Moyenne Glissante
                                                                          • Moyenne Glissante (2)
                                                                          • Moyenne Glissante (3)
                                                                          • Seacuteries financiegraveres
                                                                          • Seacuteries financiegraveres (2)
                                                                          • Seacuteries financiegraveres (3)
                                                                          • Seacuteries financiegraveres (4)
                                                                          • Creacuteation drsquoun Portefeuille
                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                          • CUBE (DB2 amp SQL-Server)
                                                                          • GROUPING SETS
                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                          • Slide 112
                                                                          • Slide 113
                                                                          • Slide 114
                                                                          • Autres Opeacuterations Utiles
                                                                          • Sous-Tables Parameacutetreacutees
                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                          • Liste de Choix Multibase
                                                                          • Liste de Choix Multibase (2)
                                                                          • Liste de Choix Multibase Reacutesultat
                                                                          • FIN
                                                                          • Slide 149

                                                                            38

                                                                            IMPSELECT S[S] SStatus SCityFROM SWHERE Status=10 imp city=paris

                                                                            bull A noter le traitement du nul dans City

                                                                            39

                                                                            Sous-requecirctes

                                                                            A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                            clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                            rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                            sous-requecircte

                                                                            SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                            40

                                                                            Sous-requecirctes

                                                                            Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                            laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                            vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                            plus grande

                                                                            41

                                                                            Sous-requecirctes

                                                                            Skylinendash Tout objet non-domineacute (cacheacute

                                                                            totalement) par un autre

                                                                            SELECT X[s] X[p] qty delay

                                                                            FROM SP X

                                                                            where not exists

                                                                            (select from SP as Y

                                                                            where (Yqty gt= XQty and YDelay lt XDelay or

                                                                            Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                            order by X[p]

                                                                            42

                                                                            Sous-requecirctes Reacutesultat

                                                                            s p qty delay

                                                                            s1 p1 300 15

                                                                            s4 p1 200 13

                                                                            s3 p2 400 15

                                                                            s2 p2 300 12

                                                                            s1 p3 400 17

                                                                            s4 p4 300 11

                                                                            s4 p5 400 7

                                                                            s1 p6 100 8

                                                                            s p qty Delay

                                                                            s1 p1 300 15

                                                                            s1 p2 200 12

                                                                            s1 p3 400 17

                                                                            s1 p4 200 11

                                                                            s1 p5 100 7

                                                                            s1 p6 100 8

                                                                            s2 p2 300 12

                                                                            s3 p2 400 15

                                                                            s4 p1 200 13

                                                                            s4 p2 200 15

                                                                            s4 p4 300 11

                                                                            s4 p5 400 7

                                                                            S

                                                                            43

                                                                            Sous-requecirctes

                                                                            On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                            SELECT Count() AS TotalQty

                                                                            FROM (select distinct qty from sp)

                                                                            On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                            SELECT SP[s] SP[p] qty

                                                                            (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                            round(qtyTotalQty 3) AS Fraction

                                                                            FROM SP order by [s]

                                                                            44

                                                                            Sous-requecirctes

                                                                            s p qty TotalQty Fraction

                                                                            s1 p1 300 1300 0231

                                                                            s1 p6 100 1300 0077

                                                                            s1 p5 100 1300 0077

                                                                            s1 p4 200 1300 0154

                                                                            s1 p3 400 1300 0308

                                                                            s1 p2 200 1300 0154

                                                                            s2 p2 300 300 1

                                                                            s3 p2 400 400 1

                                                                            s4 p5 400 1100 0364

                                                                            s4 p4 300 1100 0273

                                                                            s4 p2 200 1100 0182

                                                                            bull ReacutesultatSP

                                                                            s p qty

                                                                            s1 p1 300

                                                                            s1 p2 200

                                                                            s1 p3 400

                                                                            s1 p4 200

                                                                            s1 p5 100

                                                                            s1 p6 100

                                                                            s2 p2 300

                                                                            s3 p2 400

                                                                            s4 p1 200

                                                                            s4 p2 200

                                                                            s4 p4 300

                                                                            s4 p5 400

                                                                            45

                                                                            Sous-requecirctesbull En Mode Graphique

                                                                            s p qtyTotalQty

                                                                            Fraction

                                                                            s1 p1 300 1300 0231

                                                                            s1 p6 100 1300 0077

                                                                            s1 p5 100 1300 0077

                                                                            s1 p4 200 1300 0154

                                                                            s1 p3 400 1300 0308

                                                                            s1 p2 200 1300 0154

                                                                            s2 p2 300 300 1

                                                                            s3 p2 400 400 1

                                                                            s4 p5 400 1100 0364

                                                                            s4 p4 300 1100 0273

                                                                            s4 p2 200 1100 0182

                                                                            46

                                                                            Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                            SELECT (select count(qty) from SP

                                                                            where qty gt= [seuil svp ]) count() as reacutesultat

                                                                            FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                            probabiliteacute conditionnelle

                                                                            47

                                                                            Clause FROM imbriqueacutee

                                                                            Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                            Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                            Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                            Agrave essayer

                                                                            48

                                                                            Clause FROM imbriqueacuteePossibiliteacutes

                                                                            ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                            ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                            MsAccess

                                                                            ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                            Mais la reacutefeacuterence au nom de la requecircte OK

                                                                            49

                                                                            Clause FROM imbriqueacutee

                                                                            SELECT sum(weight) AS [poids-total]

                                                                            FROM (SELECT weight pcity FROM P WHERE City like l

                                                                            UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                            50

                                                                            Clause FROM imbriqueacutee

                                                                            select avg(moy1) as [moyenne-des-moyennes]

                                                                            FROM

                                                                            (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                            UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                            51

                                                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                            select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                            52

                                                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                            totaux partiels et total geacuteneacuteral

                                                                            total_Id TotalQty

                                                                            s1 1300

                                                                            s2 300

                                                                            s3 400

                                                                            s4 400

                                                                            total Geacuteneacuteral

                                                                            2400

                                                                            53

                                                                            Valeurs nulles

                                                                            Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                            En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                            DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                            Non WHERE HAVING GROUP BY (rel 1)

                                                                            Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                            MsAccess Oui DISTINCT Autres clauses

                                                                            54

                                                                            Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                            1 x gt y est vrai ou faux

                                                                            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                            SELECT FROM S WHERE CITY =Paris

                                                                            UNION

                                                                            SELECT FROM S WHERE NOT CITY = Paris

                                                                            est toujours pourquoi faire simpleSELECT FROM S

                                                                            si on peut faire compliqueacute

                                                                            55

                                                                            Valeurs nullesValeurs nulles

                                                                            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                            56

                                                                            Valeurs nulles

                                                                            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                            LOG (nul) -gt Error A voir cas par cas

                                                                            57

                                                                            Fonctions Scalaires DateTemps

                                                                            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                            58

                                                                            Fonctions Scalaires DateTemps

                                                                            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                            weekday(day(now())-1) AS [day]FROM S

                                                                            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                            59

                                                                            Fonctions Scalaires DateTemps

                                                                            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                            Interval Explanation

                                                                            Yyyy Year

                                                                            q Quarter

                                                                            m Month

                                                                            y Day of year

                                                                            d Day

                                                                            w Weekday

                                                                            ww Week

                                                                            h Hour

                                                                            n Minute

                                                                            s Second

                                                                            60

                                                                            Fonctions Scalaires DateTemps

                                                                            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                            Test DateDiff

                                                                            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                            61

                                                                            Fonctions Scalaires DateTemps

                                                                            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                            Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                            62

                                                                            Fonction Scalaire RND

                                                                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                            echantillon s rank

                                                                            s1 502628087997437E-02

                                                                            s4 0518015921115875

                                                                            s3 075702953338623

                                                                            63

                                                                            Fonction Scalaire RND

                                                                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                            Votre commentaire ici

                                                                            64

                                                                            Fonctions Financiegraveres

                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                            65

                                                                            Fonctions Financiegraveres

                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                            66

                                                                            Fonction DDB

                                                                            insert into DDB (cost salvage life factor amortiss period)

                                                                            select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                            DDB(cost salvage life period factor) as amortiss period

                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                            67

                                                                            Fonction DDB

                                                                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                            68

                                                                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                            nombres neacutegatifs

                                                                            Fonction PMT

                                                                            69

                                                                            Fonction PMT

                                                                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                            Fonction PMT calcul dannuiteacute demprunt

                                                                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                            preacutesentevaleur_payeacutee surprime

                                                                            -16049 005 20 200000 -320980 -120980

                                                                            70

                                                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                            Et les nuls que log ne supporte pas

                                                                            Anneacutee relative

                                                                            Taux

                                                                            1 4

                                                                            2 4

                                                                            3 3

                                                                            4 5

                                                                            5 5

                                                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                                                            71

                                                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                            est eacutequivalente agrave

                                                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                            WHERE XP = SPP) FROM SP

                                                                            Testez

                                                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                            72

                                                                            LIST Function La requecircte

                                                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                            Comme les tabulations croiseacutees

                                                                            ndash Mais en + simple

                                                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                            ndash En mono attribut (2004)

                                                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                            sous-formulaires

                                                                            73

                                                                            LIST Function

                                                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                            74

                                                                            GROUP BY avec WHERE

                                                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                            75

                                                                            GROUP BY

                                                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                            Pourquoi

                                                                            76

                                                                            GROUP BY avec HAVING

                                                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                            77

                                                                            T-GROUP BY Proposeacute pour SQL

                                                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                            Le rocircle de -join par rapport agrave equi-join

                                                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                            INT(AVG(QTY)) AS QTY2FROM SP

                                                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                            78

                                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                            FROM SP Vrai ou Faux

                                                                            79

                                                                            T-GROUP BY

                                                                            Reacutesultat

                                                                            part avg_qty_other_parts part_avg_qty

                                                                            p1 250 300

                                                                            p2 262 250

                                                                            p3 245 400

                                                                            p4 260 250

                                                                            p5 260 250

                                                                            p6 272 100

                                                                            80

                                                                            T-GROUP BY

                                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                            81

                                                                            Rangs Non-Denses(Non Dense Ranking)

                                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                            s p qtyND-rank

                                                                            s4 p5 400 1

                                                                            s3 p2 400 1

                                                                            s1 p3 400 1

                                                                            s4 p4 300 4

                                                                            s2 p2 300 4

                                                                            s1 p1 300 4

                                                                            s4 p2 200 7

                                                                            s1 p4 200 7

                                                                            s1 p2 200 7

                                                                            s4 p1 200 7

                                                                            s1 p6 100 11

                                                                            s1 p5 100 11

                                                                            82

                                                                            Rangs Non-Denses(Graphique MsAccess)

                                                                            s p qty ND-rank

                                                                            s4 p5 400 1

                                                                            s3 p2 400 1

                                                                            s1 p3 400 1

                                                                            s4 p4 300 4

                                                                            s2 p2 300 4

                                                                            s1 p1 300 4

                                                                            s4 p2 200 7

                                                                            s1 p4 200 7

                                                                            s1 p2 200 7

                                                                            s4 p1 200 7

                                                                            s1 p6 100 11

                                                                            s1 p5 100 11

                                                                            83

                                                                            Rangs Denses(Dense Ranking)

                                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                            s p qtyD-rank

                                                                            s1 p3 400 1

                                                                            s3 p2 400 1

                                                                            s4 p5 400 1

                                                                            s1 p1 300 2

                                                                            s2 p2 300 2

                                                                            s4 p4 300 2

                                                                            s1 p4 200 3

                                                                            s1 p2 200 3

                                                                            s4 p2 200 3

                                                                            s4 p1 200 3

                                                                            s1 p6 100 4

                                                                            s1 p5 100 4

                                                                            84

                                                                            Rangs DensesGraphique MsAccess

                                                                            s p qty D-rank

                                                                            s1 p3 400 1

                                                                            s3 p2 400 1

                                                                            s4 p5 400 1

                                                                            s1 p1 300 2

                                                                            s2 p2 300 2

                                                                            s4 p4 300 2

                                                                            s1 p4 200 3

                                                                            s1 p2 200 3

                                                                            s4 p2 200 3

                                                                            s4 p1 200 3

                                                                            s1 p6 100 4

                                                                            s1 p5 100 4

                                                                            85

                                                                            Distribution

                                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                            86

                                                                            Reacutesultat

                                                                            s Distribution

                                                                            s1 0419

                                                                            s2 0097

                                                                            s3 0129

                                                                            s4 0355

                                                                            87

                                                                            Distribution Cumulative

                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                            FROM SP

                                                                            ORDER BY SP[s]

                                                                            88

                                                                            Reacutesultat

                                                                            sDistribution Cumuleacutee

                                                                            s1 0419

                                                                            s2 0516

                                                                            s3 0645

                                                                            s4 1

                                                                            89

                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                            90

                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                            FROM S

                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                            s1 Smith Paris good good

                                                                            s2 Jones 100 london good VGood

                                                                            s3 Blake 30 Paris good good

                                                                            s4 Clark 10 london OK OK

                                                                            s5 Adams 30 Athens good good

                                                                            bull Notez le traitement du null

                                                                            91

                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                            FROM P where weight gt 13

                                                                            union

                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                            UNION

                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                            ORDER BY warning DESC weight DESC

                                                                            pname weight Warning

                                                                            cam 19 Very Heavy

                                                                            cog 19 Very Heavy

                                                                            bolt 17 Very Heavy

                                                                            nut 14 Very Heavy

                                                                            screw 14 Very Heavy

                                                                            nut 14 Quite Heavy

                                                                            screw 14 Quite Heavy

                                                                            screw 12 Quite Heavy

                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                            92

                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                            On considegravere AVG(Qty1) pour Qty

                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                            SP

                                                                            s p qtyQty1

                                                                            s1 p1 300 400

                                                                            s1 p2 200

                                                                            s1 p3 400 600

                                                                            s1 p4 200 300

                                                                            s1 p5 100

                                                                            s1 p6 100 200

                                                                            s2 p2 300 500

                                                                            s3 p2 400

                                                                            s4 p1 200 100

                                                                            s4 p2 200

                                                                            s4 p4 300

                                                                            s4 p5 400

                                                                            93

                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                            SP

                                                                            s p qtyQty1

                                                                            s1 p1 300 400

                                                                            s1 p2 200

                                                                            s1 p3 400 600

                                                                            s1 p4 200 300

                                                                            s1 p5 100

                                                                            s1 p6 100 200

                                                                            s2 p2 300 500

                                                                            s3 p2 400

                                                                            s4 p1 200 100

                                                                            s4 p2 200

                                                                            s4 p4 300

                                                                            s4 p5 400

                                                                            qty for partpredicted or

                                                                            unknown Qty1

                                                                            100 p5

                                                                            100 predicted value 200

                                                                            200 p2

                                                                            200 predicted value 200

                                                                            300 p4

                                                                            300 predicted value 450

                                                                            400 p2

                                                                            400 p5

                                                                            400 predicted value 600

                                                                            94

                                                                            Tendance

                                                                            qty Qty1

                                                                            100 200

                                                                            200 300

                                                                            300 400

                                                                            400 600

                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                            Graph 3D avec Qty en abscisses

                                                                            95

                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                            30102008 120 27102008 4

                                                                            25102008 131 22102008 4

                                                                            23102008 127 20102008 4

                                                                            17102008 269 14102008 4

                                                                            15102008 60 12102008 4

                                                                            11102008 295 08102008 4

                                                                            09102008 340 06102008 4

                                                                            08102008 324 05102008 4

                                                                            06102008 315 03102008 4

                                                                            96

                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                            Graphique avec une info-bulle

                                                                            97

                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                            glissantes

                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                            bull MAVG

                                                                            bull MSUM

                                                                            bull MDIFF

                                                                            bull Voir Teradata + loin

                                                                            98

                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                            99

                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                            100

                                                                            Seacuteries financiegraveres

                                                                            capital taux nval apregraves n ans

                                                                            taux1val1 apregraves n ans

                                                                            GainAbs GainRel

                                                                            100 005 1 105 006 106 1 1

                                                                            100 005 2 110 006 112 2 2

                                                                            100 005 3 115 006 119 4 4

                                                                            100 005 4 121 006 126 5 5

                                                                            100 005 5 127 006 133 6 6

                                                                            100 005 6 134 006 141 7 7

                                                                            100 005 7 140 006 150 10 10

                                                                            100 005 8 147 006 159 12 12

                                                                            100 005 9 155 006 168 13 13

                                                                            100 005 10 162 006 179 17 17

                                                                            100 005 11 171 006 189 18 18

                                                                            100 005 12 179 006 201 22 22

                                                                            100 005 13 188 006 213 25 25

                                                                            100 005 14 197 006 226 29 29

                                                                            100 005 15 207 006 239 32 32

                                                                            100 005 16 218 006 254 36 36

                                                                            100 005 17 229 006 269 40 40

                                                                            100 005 18 240 006 285 45 45

                                                                            100 005 19 252 006 302 50 50

                                                                            100 005 20 265 006 320 55 55

                                                                            101

                                                                            Seacuteries financiegraveres

                                                                            102

                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                            financiers de la table Produits

                                                                            bull Dans la limite L de la somme donneacutee

                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                            bull En ordre descendant de prix

                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                            bull Plusieurs actionshellip

                                                                            103

                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                            P prix

                                                                            p3 200

                                                                            p1 200

                                                                            p2 400

                                                                            p3 200

                                                                            p4 100

                                                                            p6 100

                                                                            p5 300

                                                                            p8 300

                                                                            p7 400

                                                                            p10 200

                                                                            p12 300

                                                                            p13 300

                                                                            104

                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                            ORDER BY 4 desc 8 123

                                                                            105

                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                            106

                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                            107

                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                            108

                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                            109

                                                                            CUBE(DB2 amp SQL-Server)

                                                                            CUBE(DB2 amp SQL-Server)

                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                            110

                                                                            GROUPING SETS

                                                                            On indique explicitement les groupesndash entre ()

                                                                            le groupe () est constitueacute de toute la table

                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                            WHERE SP P = PP AND SP S = SS

                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                            HAVING tot-qty gt 100

                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                            111

                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                            Peut ecirctre laborieux pour le CUBE

                                                                            112

                                                                            ROLLUP

                                                                            Remarquez le laquo null as cityraquo

                                                                            113

                                                                            ROLLUP

                                                                            114

                                                                            ROLLUP

                                                                            Et le CUBE

                                                                            Une solution pour l ambiguiumlteacute

                                                                            de certains nuls

                                                                            115

                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                            Wiley (publ)

                                                                            116

                                                                            Sous-Tables Parameacutetreacutees

                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                            117

                                                                            Sous-Tables Parameacutetreacutees

                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                            118

                                                                            Sous-Tables Parameacutetreacutees

                                                                            119

                                                                            Sous-Tables Parameacutetreacutees

                                                                            120

                                                                            Sous-Tables Parameacutetreacutees

                                                                            121

                                                                            Sous-Tables Parameacutetreacutees

                                                                            122

                                                                            Sous-Tables Parameacutetreacutees

                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                            123

                                                                            Sous-Tables Parameacutetreacutees

                                                                            Exeacutecution autonome

                                                                            124

                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                            hellip

                                                                            125

                                                                            Liste de Choix Multibase

                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                            126

                                                                            Liste de Choix MultibaseReacutesultat

                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                            Tregraves bonne question agrave Microsoft

                                                                            148

                                                                            FIN

                                                                            149

                                                                            • SQL Avanceacute 2010
                                                                            • Quoi amp Pourquoi
                                                                            • Slide 3
                                                                            • Synonymes
                                                                            • Noms dattributs
                                                                            • Slide 6
                                                                            • Slide 7
                                                                            • Slide 8
                                                                            • Insertion dans une Vue
                                                                            • Insertion dans une Vue (2)
                                                                            • MAJ drsquoune Vue MsAccess
                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                            • Suppression dans une Vue MsAccess
                                                                            • MsAccess Leacutegendes
                                                                            • Expressions de valeur
                                                                            • Expressions de valeur (2)
                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                            • UNION et Noms Drsquoattributs
                                                                            • UNION et ORDER BY
                                                                            • ORDER BY et expressions de valeur
                                                                            • ORDER BY et expressions de valeur (2)
                                                                            • Ordre de prioriteacute dopeacuterations
                                                                            • Preacutedicat TOP
                                                                            • Preacutedicat TOP (2)
                                                                            • Clause BETWEEN
                                                                            • Limitations de NOT
                                                                            • ANY et ALL
                                                                            • Injection SQL
                                                                            • Injection SQL (2)
                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                            • Tabulations Croiseacutees
                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                            • Tabulations Croiseacutees (2)
                                                                            • Tabulations Croiseacutees (3)
                                                                            • Tabulations Croiseacutees (4)
                                                                            • Tabulations Croiseacutees (5)
                                                                            • XOR
                                                                            • IMP
                                                                            • Sous-requecirctes
                                                                            • Sous-requecirctes (2)
                                                                            • Sous-requecirctes (3)
                                                                            • Sous-requecirctes (4)
                                                                            • Sous-requecirctes (5)
                                                                            • Sous-requecirctes (6)
                                                                            • Sous-requecirctes (7)
                                                                            • Application aux Probabiliteacutes
                                                                            • Clause FROM imbriqueacutee
                                                                            • Clause FROM imbriqueacutee (2)
                                                                            • Clause FROM imbriqueacutee (3)
                                                                            • Clause FROM imbriqueacutee (4)
                                                                            • Clause FROM imbriqueacutee (5)
                                                                            • Clause FROM imbriqueacutee (6)
                                                                            • Valeurs nulles
                                                                            • Valeurs nulles (2)
                                                                            • Valeurs nulles (3)
                                                                            • Valeurs nulles (4)
                                                                            • Fonctions Scalaires DateTemps
                                                                            • Fonctions Scalaires DateTemps (2)
                                                                            • Fonctions Scalaires DateTemps (3)
                                                                            • Fonctions Scalaires DateTemps (4)
                                                                            • Fonctions Scalaires DateTemps (5)
                                                                            • Fonction Scalaire RND
                                                                            • Fonction Scalaire RND (2)
                                                                            • Fonctions Financiegraveres
                                                                            • Fonctions Financiegraveres (2)
                                                                            • Fonction DDB
                                                                            • Fonction DDB (2)
                                                                            • Fonction PMT
                                                                            • Fonction PMT (2)
                                                                            • Placement agrave taux variable
                                                                            • GROUP BY
                                                                            • LIST Function
                                                                            • LIST Function (2)
                                                                            • GROUP BY avec WHERE
                                                                            • GROUP BY (2)
                                                                            • GROUP BY avec HAVING
                                                                            • T-GROUP BY
                                                                            • T-GROUP BY (2)
                                                                            • T-GROUP BY (3)
                                                                            • T-GROUP BY (4)
                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                            • Rangs Denses (Dense Ranking)
                                                                            • Rangs Denses Graphique MsAccess
                                                                            • Distribution
                                                                            • Reacutesultat
                                                                            • Distribution Cumulative
                                                                            • Reacutesultat (2)
                                                                            • Cateacutegorisation
                                                                            • Cateacutegorisation (2)
                                                                            • Cateacutegorisation (3)
                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                            • Tendance
                                                                            • Moyenne Glissante
                                                                            • Moyenne Glissante (2)
                                                                            • Moyenne Glissante (3)
                                                                            • Seacuteries financiegraveres
                                                                            • Seacuteries financiegraveres (2)
                                                                            • Seacuteries financiegraveres (3)
                                                                            • Seacuteries financiegraveres (4)
                                                                            • Creacuteation drsquoun Portefeuille
                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                            • CUBE (DB2 amp SQL-Server)
                                                                            • GROUPING SETS
                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                            • Slide 112
                                                                            • Slide 113
                                                                            • Slide 114
                                                                            • Autres Opeacuterations Utiles
                                                                            • Sous-Tables Parameacutetreacutees
                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                            • Liste de Choix Multibase
                                                                            • Liste de Choix Multibase (2)
                                                                            • Liste de Choix Multibase Reacutesultat
                                                                            • FIN
                                                                            • Slide 149

                                                                              39

                                                                              Sous-requecirctes

                                                                              A utiliser quandndash Il y a une fonction dagreacutegat agrave mettre dans la

                                                                              clause WHEREndash Il y des quantificateursndash Enfin lrsquoon sait quune telle formulation serait plus

                                                                              rapide quen utilisant les jointures car la sous-requecircte est eacutevalueacutee en premiegravere de moins en moins vrai Mais vous ne risquez rien en utilisant une

                                                                              sous-requecircte

                                                                              SELECT FROM EMP WHERE SAL lt(SELECT AVG(SAL) FROM EMP)

                                                                              40

                                                                              Sous-requecirctes

                                                                              Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                              laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                              vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                              plus grande

                                                                              41

                                                                              Sous-requecirctes

                                                                              Skylinendash Tout objet non-domineacute (cacheacute

                                                                              totalement) par un autre

                                                                              SELECT X[s] X[p] qty delay

                                                                              FROM SP X

                                                                              where not exists

                                                                              (select from SP as Y

                                                                              where (Yqty gt= XQty and YDelay lt XDelay or

                                                                              Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                              order by X[p]

                                                                              42

                                                                              Sous-requecirctes Reacutesultat

                                                                              s p qty delay

                                                                              s1 p1 300 15

                                                                              s4 p1 200 13

                                                                              s3 p2 400 15

                                                                              s2 p2 300 12

                                                                              s1 p3 400 17

                                                                              s4 p4 300 11

                                                                              s4 p5 400 7

                                                                              s1 p6 100 8

                                                                              s p qty Delay

                                                                              s1 p1 300 15

                                                                              s1 p2 200 12

                                                                              s1 p3 400 17

                                                                              s1 p4 200 11

                                                                              s1 p5 100 7

                                                                              s1 p6 100 8

                                                                              s2 p2 300 12

                                                                              s3 p2 400 15

                                                                              s4 p1 200 13

                                                                              s4 p2 200 15

                                                                              s4 p4 300 11

                                                                              s4 p5 400 7

                                                                              S

                                                                              43

                                                                              Sous-requecirctes

                                                                              On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                              SELECT Count() AS TotalQty

                                                                              FROM (select distinct qty from sp)

                                                                              On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                              SELECT SP[s] SP[p] qty

                                                                              (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                              round(qtyTotalQty 3) AS Fraction

                                                                              FROM SP order by [s]

                                                                              44

                                                                              Sous-requecirctes

                                                                              s p qty TotalQty Fraction

                                                                              s1 p1 300 1300 0231

                                                                              s1 p6 100 1300 0077

                                                                              s1 p5 100 1300 0077

                                                                              s1 p4 200 1300 0154

                                                                              s1 p3 400 1300 0308

                                                                              s1 p2 200 1300 0154

                                                                              s2 p2 300 300 1

                                                                              s3 p2 400 400 1

                                                                              s4 p5 400 1100 0364

                                                                              s4 p4 300 1100 0273

                                                                              s4 p2 200 1100 0182

                                                                              bull ReacutesultatSP

                                                                              s p qty

                                                                              s1 p1 300

                                                                              s1 p2 200

                                                                              s1 p3 400

                                                                              s1 p4 200

                                                                              s1 p5 100

                                                                              s1 p6 100

                                                                              s2 p2 300

                                                                              s3 p2 400

                                                                              s4 p1 200

                                                                              s4 p2 200

                                                                              s4 p4 300

                                                                              s4 p5 400

                                                                              45

                                                                              Sous-requecirctesbull En Mode Graphique

                                                                              s p qtyTotalQty

                                                                              Fraction

                                                                              s1 p1 300 1300 0231

                                                                              s1 p6 100 1300 0077

                                                                              s1 p5 100 1300 0077

                                                                              s1 p4 200 1300 0154

                                                                              s1 p3 400 1300 0308

                                                                              s1 p2 200 1300 0154

                                                                              s2 p2 300 300 1

                                                                              s3 p2 400 400 1

                                                                              s4 p5 400 1100 0364

                                                                              s4 p4 300 1100 0273

                                                                              s4 p2 200 1100 0182

                                                                              46

                                                                              Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                              SELECT (select count(qty) from SP

                                                                              where qty gt= [seuil svp ]) count() as reacutesultat

                                                                              FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                              probabiliteacute conditionnelle

                                                                              47

                                                                              Clause FROM imbriqueacutee

                                                                              Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                              Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                              Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                              Agrave essayer

                                                                              48

                                                                              Clause FROM imbriqueacuteePossibiliteacutes

                                                                              ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                              ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                              MsAccess

                                                                              ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                              Mais la reacutefeacuterence au nom de la requecircte OK

                                                                              49

                                                                              Clause FROM imbriqueacutee

                                                                              SELECT sum(weight) AS [poids-total]

                                                                              FROM (SELECT weight pcity FROM P WHERE City like l

                                                                              UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                              50

                                                                              Clause FROM imbriqueacutee

                                                                              select avg(moy1) as [moyenne-des-moyennes]

                                                                              FROM

                                                                              (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                              UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                              51

                                                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                              select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                              52

                                                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                              totaux partiels et total geacuteneacuteral

                                                                              total_Id TotalQty

                                                                              s1 1300

                                                                              s2 300

                                                                              s3 400

                                                                              s4 400

                                                                              total Geacuteneacuteral

                                                                              2400

                                                                              53

                                                                              Valeurs nulles

                                                                              Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                              En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                              DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                              Non WHERE HAVING GROUP BY (rel 1)

                                                                              Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                              MsAccess Oui DISTINCT Autres clauses

                                                                              54

                                                                              Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                              1 x gt y est vrai ou faux

                                                                              2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                              DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                              SELECT FROM S WHERE CITY =Paris

                                                                              UNION

                                                                              SELECT FROM S WHERE NOT CITY = Paris

                                                                              est toujours pourquoi faire simpleSELECT FROM S

                                                                              si on peut faire compliqueacute

                                                                              55

                                                                              Valeurs nullesValeurs nulles

                                                                              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                              56

                                                                              Valeurs nulles

                                                                              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                              LOG (nul) -gt Error A voir cas par cas

                                                                              57

                                                                              Fonctions Scalaires DateTemps

                                                                              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                              58

                                                                              Fonctions Scalaires DateTemps

                                                                              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                              weekday(day(now())-1) AS [day]FROM S

                                                                              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                              59

                                                                              Fonctions Scalaires DateTemps

                                                                              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                              Interval Explanation

                                                                              Yyyy Year

                                                                              q Quarter

                                                                              m Month

                                                                              y Day of year

                                                                              d Day

                                                                              w Weekday

                                                                              ww Week

                                                                              h Hour

                                                                              n Minute

                                                                              s Second

                                                                              60

                                                                              Fonctions Scalaires DateTemps

                                                                              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                              Test DateDiff

                                                                              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                              61

                                                                              Fonctions Scalaires DateTemps

                                                                              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                              Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                              62

                                                                              Fonction Scalaire RND

                                                                              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                              echantillon s rank

                                                                              s1 502628087997437E-02

                                                                              s4 0518015921115875

                                                                              s3 075702953338623

                                                                              63

                                                                              Fonction Scalaire RND

                                                                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                              Votre commentaire ici

                                                                              64

                                                                              Fonctions Financiegraveres

                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                              65

                                                                              Fonctions Financiegraveres

                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                              66

                                                                              Fonction DDB

                                                                              insert into DDB (cost salvage life factor amortiss period)

                                                                              select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                              DDB(cost salvage life period factor) as amortiss period

                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                              67

                                                                              Fonction DDB

                                                                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                              68

                                                                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                              nombres neacutegatifs

                                                                              Fonction PMT

                                                                              69

                                                                              Fonction PMT

                                                                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                              Fonction PMT calcul dannuiteacute demprunt

                                                                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                              preacutesentevaleur_payeacutee surprime

                                                                              -16049 005 20 200000 -320980 -120980

                                                                              70

                                                                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                              Et les nuls que log ne supporte pas

                                                                              Anneacutee relative

                                                                              Taux

                                                                              1 4

                                                                              2 4

                                                                              3 3

                                                                              4 5

                                                                              5 5

                                                                              Voir + dans le livre laquo SQL Design Patterns raquo

                                                                              71

                                                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                              est eacutequivalente agrave

                                                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                              WHERE XP = SPP) FROM SP

                                                                              Testez

                                                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                              72

                                                                              LIST Function La requecircte

                                                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                              Comme les tabulations croiseacutees

                                                                              ndash Mais en + simple

                                                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                              ndash En mono attribut (2004)

                                                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                              sous-formulaires

                                                                              73

                                                                              LIST Function

                                                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                              74

                                                                              GROUP BY avec WHERE

                                                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                              75

                                                                              GROUP BY

                                                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                              Pourquoi

                                                                              76

                                                                              GROUP BY avec HAVING

                                                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                              77

                                                                              T-GROUP BY Proposeacute pour SQL

                                                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                              Le rocircle de -join par rapport agrave equi-join

                                                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                              INT(AVG(QTY)) AS QTY2FROM SP

                                                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                              78

                                                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                              FROM SP Vrai ou Faux

                                                                              79

                                                                              T-GROUP BY

                                                                              Reacutesultat

                                                                              part avg_qty_other_parts part_avg_qty

                                                                              p1 250 300

                                                                              p2 262 250

                                                                              p3 245 400

                                                                              p4 260 250

                                                                              p5 260 250

                                                                              p6 272 100

                                                                              80

                                                                              T-GROUP BY

                                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                              81

                                                                              Rangs Non-Denses(Non Dense Ranking)

                                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                              s p qtyND-rank

                                                                              s4 p5 400 1

                                                                              s3 p2 400 1

                                                                              s1 p3 400 1

                                                                              s4 p4 300 4

                                                                              s2 p2 300 4

                                                                              s1 p1 300 4

                                                                              s4 p2 200 7

                                                                              s1 p4 200 7

                                                                              s1 p2 200 7

                                                                              s4 p1 200 7

                                                                              s1 p6 100 11

                                                                              s1 p5 100 11

                                                                              82

                                                                              Rangs Non-Denses(Graphique MsAccess)

                                                                              s p qty ND-rank

                                                                              s4 p5 400 1

                                                                              s3 p2 400 1

                                                                              s1 p3 400 1

                                                                              s4 p4 300 4

                                                                              s2 p2 300 4

                                                                              s1 p1 300 4

                                                                              s4 p2 200 7

                                                                              s1 p4 200 7

                                                                              s1 p2 200 7

                                                                              s4 p1 200 7

                                                                              s1 p6 100 11

                                                                              s1 p5 100 11

                                                                              83

                                                                              Rangs Denses(Dense Ranking)

                                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                              s p qtyD-rank

                                                                              s1 p3 400 1

                                                                              s3 p2 400 1

                                                                              s4 p5 400 1

                                                                              s1 p1 300 2

                                                                              s2 p2 300 2

                                                                              s4 p4 300 2

                                                                              s1 p4 200 3

                                                                              s1 p2 200 3

                                                                              s4 p2 200 3

                                                                              s4 p1 200 3

                                                                              s1 p6 100 4

                                                                              s1 p5 100 4

                                                                              84

                                                                              Rangs DensesGraphique MsAccess

                                                                              s p qty D-rank

                                                                              s1 p3 400 1

                                                                              s3 p2 400 1

                                                                              s4 p5 400 1

                                                                              s1 p1 300 2

                                                                              s2 p2 300 2

                                                                              s4 p4 300 2

                                                                              s1 p4 200 3

                                                                              s1 p2 200 3

                                                                              s4 p2 200 3

                                                                              s4 p1 200 3

                                                                              s1 p6 100 4

                                                                              s1 p5 100 4

                                                                              85

                                                                              Distribution

                                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                              86

                                                                              Reacutesultat

                                                                              s Distribution

                                                                              s1 0419

                                                                              s2 0097

                                                                              s3 0129

                                                                              s4 0355

                                                                              87

                                                                              Distribution Cumulative

                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                              FROM SP

                                                                              ORDER BY SP[s]

                                                                              88

                                                                              Reacutesultat

                                                                              sDistribution Cumuleacutee

                                                                              s1 0419

                                                                              s2 0516

                                                                              s3 0645

                                                                              s4 1

                                                                              89

                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                              90

                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                              FROM S

                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                              s1 Smith Paris good good

                                                                              s2 Jones 100 london good VGood

                                                                              s3 Blake 30 Paris good good

                                                                              s4 Clark 10 london OK OK

                                                                              s5 Adams 30 Athens good good

                                                                              bull Notez le traitement du null

                                                                              91

                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                              FROM P where weight gt 13

                                                                              union

                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                              UNION

                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                              ORDER BY warning DESC weight DESC

                                                                              pname weight Warning

                                                                              cam 19 Very Heavy

                                                                              cog 19 Very Heavy

                                                                              bolt 17 Very Heavy

                                                                              nut 14 Very Heavy

                                                                              screw 14 Very Heavy

                                                                              nut 14 Quite Heavy

                                                                              screw 14 Quite Heavy

                                                                              screw 12 Quite Heavy

                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                              92

                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                              On considegravere AVG(Qty1) pour Qty

                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                              SP

                                                                              s p qtyQty1

                                                                              s1 p1 300 400

                                                                              s1 p2 200

                                                                              s1 p3 400 600

                                                                              s1 p4 200 300

                                                                              s1 p5 100

                                                                              s1 p6 100 200

                                                                              s2 p2 300 500

                                                                              s3 p2 400

                                                                              s4 p1 200 100

                                                                              s4 p2 200

                                                                              s4 p4 300

                                                                              s4 p5 400

                                                                              93

                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                              SP

                                                                              s p qtyQty1

                                                                              s1 p1 300 400

                                                                              s1 p2 200

                                                                              s1 p3 400 600

                                                                              s1 p4 200 300

                                                                              s1 p5 100

                                                                              s1 p6 100 200

                                                                              s2 p2 300 500

                                                                              s3 p2 400

                                                                              s4 p1 200 100

                                                                              s4 p2 200

                                                                              s4 p4 300

                                                                              s4 p5 400

                                                                              qty for partpredicted or

                                                                              unknown Qty1

                                                                              100 p5

                                                                              100 predicted value 200

                                                                              200 p2

                                                                              200 predicted value 200

                                                                              300 p4

                                                                              300 predicted value 450

                                                                              400 p2

                                                                              400 p5

                                                                              400 predicted value 600

                                                                              94

                                                                              Tendance

                                                                              qty Qty1

                                                                              100 200

                                                                              200 300

                                                                              300 400

                                                                              400 600

                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                              Graph 3D avec Qty en abscisses

                                                                              95

                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                              30102008 120 27102008 4

                                                                              25102008 131 22102008 4

                                                                              23102008 127 20102008 4

                                                                              17102008 269 14102008 4

                                                                              15102008 60 12102008 4

                                                                              11102008 295 08102008 4

                                                                              09102008 340 06102008 4

                                                                              08102008 324 05102008 4

                                                                              06102008 315 03102008 4

                                                                              96

                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                              Graphique avec une info-bulle

                                                                              97

                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                              glissantes

                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                              bull MAVG

                                                                              bull MSUM

                                                                              bull MDIFF

                                                                              bull Voir Teradata + loin

                                                                              98

                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                              99

                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                              100

                                                                              Seacuteries financiegraveres

                                                                              capital taux nval apregraves n ans

                                                                              taux1val1 apregraves n ans

                                                                              GainAbs GainRel

                                                                              100 005 1 105 006 106 1 1

                                                                              100 005 2 110 006 112 2 2

                                                                              100 005 3 115 006 119 4 4

                                                                              100 005 4 121 006 126 5 5

                                                                              100 005 5 127 006 133 6 6

                                                                              100 005 6 134 006 141 7 7

                                                                              100 005 7 140 006 150 10 10

                                                                              100 005 8 147 006 159 12 12

                                                                              100 005 9 155 006 168 13 13

                                                                              100 005 10 162 006 179 17 17

                                                                              100 005 11 171 006 189 18 18

                                                                              100 005 12 179 006 201 22 22

                                                                              100 005 13 188 006 213 25 25

                                                                              100 005 14 197 006 226 29 29

                                                                              100 005 15 207 006 239 32 32

                                                                              100 005 16 218 006 254 36 36

                                                                              100 005 17 229 006 269 40 40

                                                                              100 005 18 240 006 285 45 45

                                                                              100 005 19 252 006 302 50 50

                                                                              100 005 20 265 006 320 55 55

                                                                              101

                                                                              Seacuteries financiegraveres

                                                                              102

                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                              financiers de la table Produits

                                                                              bull Dans la limite L de la somme donneacutee

                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                              bull En ordre descendant de prix

                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                              bull Plusieurs actionshellip

                                                                              103

                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                              P prix

                                                                              p3 200

                                                                              p1 200

                                                                              p2 400

                                                                              p3 200

                                                                              p4 100

                                                                              p6 100

                                                                              p5 300

                                                                              p8 300

                                                                              p7 400

                                                                              p10 200

                                                                              p12 300

                                                                              p13 300

                                                                              104

                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                              ORDER BY 4 desc 8 123

                                                                              105

                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                              106

                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                              107

                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                              108

                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                              109

                                                                              CUBE(DB2 amp SQL-Server)

                                                                              CUBE(DB2 amp SQL-Server)

                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                              110

                                                                              GROUPING SETS

                                                                              On indique explicitement les groupesndash entre ()

                                                                              le groupe () est constitueacute de toute la table

                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                              WHERE SP P = PP AND SP S = SS

                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                              HAVING tot-qty gt 100

                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                              111

                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                              Peut ecirctre laborieux pour le CUBE

                                                                              112

                                                                              ROLLUP

                                                                              Remarquez le laquo null as cityraquo

                                                                              113

                                                                              ROLLUP

                                                                              114

                                                                              ROLLUP

                                                                              Et le CUBE

                                                                              Une solution pour l ambiguiumlteacute

                                                                              de certains nuls

                                                                              115

                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                              Wiley (publ)

                                                                              116

                                                                              Sous-Tables Parameacutetreacutees

                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                              117

                                                                              Sous-Tables Parameacutetreacutees

                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                              118

                                                                              Sous-Tables Parameacutetreacutees

                                                                              119

                                                                              Sous-Tables Parameacutetreacutees

                                                                              120

                                                                              Sous-Tables Parameacutetreacutees

                                                                              121

                                                                              Sous-Tables Parameacutetreacutees

                                                                              122

                                                                              Sous-Tables Parameacutetreacutees

                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                              123

                                                                              Sous-Tables Parameacutetreacutees

                                                                              Exeacutecution autonome

                                                                              124

                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                              hellip

                                                                              125

                                                                              Liste de Choix Multibase

                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                              126

                                                                              Liste de Choix MultibaseReacutesultat

                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                              Tregraves bonne question agrave Microsoft

                                                                              148

                                                                              FIN

                                                                              149

                                                                              • SQL Avanceacute 2010
                                                                              • Quoi amp Pourquoi
                                                                              • Slide 3
                                                                              • Synonymes
                                                                              • Noms dattributs
                                                                              • Slide 6
                                                                              • Slide 7
                                                                              • Slide 8
                                                                              • Insertion dans une Vue
                                                                              • Insertion dans une Vue (2)
                                                                              • MAJ drsquoune Vue MsAccess
                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                              • Suppression dans une Vue MsAccess
                                                                              • MsAccess Leacutegendes
                                                                              • Expressions de valeur
                                                                              • Expressions de valeur (2)
                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                              • UNION et Noms Drsquoattributs
                                                                              • UNION et ORDER BY
                                                                              • ORDER BY et expressions de valeur
                                                                              • ORDER BY et expressions de valeur (2)
                                                                              • Ordre de prioriteacute dopeacuterations
                                                                              • Preacutedicat TOP
                                                                              • Preacutedicat TOP (2)
                                                                              • Clause BETWEEN
                                                                              • Limitations de NOT
                                                                              • ANY et ALL
                                                                              • Injection SQL
                                                                              • Injection SQL (2)
                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                              • Tabulations Croiseacutees
                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                              • Tabulations Croiseacutees (2)
                                                                              • Tabulations Croiseacutees (3)
                                                                              • Tabulations Croiseacutees (4)
                                                                              • Tabulations Croiseacutees (5)
                                                                              • XOR
                                                                              • IMP
                                                                              • Sous-requecirctes
                                                                              • Sous-requecirctes (2)
                                                                              • Sous-requecirctes (3)
                                                                              • Sous-requecirctes (4)
                                                                              • Sous-requecirctes (5)
                                                                              • Sous-requecirctes (6)
                                                                              • Sous-requecirctes (7)
                                                                              • Application aux Probabiliteacutes
                                                                              • Clause FROM imbriqueacutee
                                                                              • Clause FROM imbriqueacutee (2)
                                                                              • Clause FROM imbriqueacutee (3)
                                                                              • Clause FROM imbriqueacutee (4)
                                                                              • Clause FROM imbriqueacutee (5)
                                                                              • Clause FROM imbriqueacutee (6)
                                                                              • Valeurs nulles
                                                                              • Valeurs nulles (2)
                                                                              • Valeurs nulles (3)
                                                                              • Valeurs nulles (4)
                                                                              • Fonctions Scalaires DateTemps
                                                                              • Fonctions Scalaires DateTemps (2)
                                                                              • Fonctions Scalaires DateTemps (3)
                                                                              • Fonctions Scalaires DateTemps (4)
                                                                              • Fonctions Scalaires DateTemps (5)
                                                                              • Fonction Scalaire RND
                                                                              • Fonction Scalaire RND (2)
                                                                              • Fonctions Financiegraveres
                                                                              • Fonctions Financiegraveres (2)
                                                                              • Fonction DDB
                                                                              • Fonction DDB (2)
                                                                              • Fonction PMT
                                                                              • Fonction PMT (2)
                                                                              • Placement agrave taux variable
                                                                              • GROUP BY
                                                                              • LIST Function
                                                                              • LIST Function (2)
                                                                              • GROUP BY avec WHERE
                                                                              • GROUP BY (2)
                                                                              • GROUP BY avec HAVING
                                                                              • T-GROUP BY
                                                                              • T-GROUP BY (2)
                                                                              • T-GROUP BY (3)
                                                                              • T-GROUP BY (4)
                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                              • Rangs Denses (Dense Ranking)
                                                                              • Rangs Denses Graphique MsAccess
                                                                              • Distribution
                                                                              • Reacutesultat
                                                                              • Distribution Cumulative
                                                                              • Reacutesultat (2)
                                                                              • Cateacutegorisation
                                                                              • Cateacutegorisation (2)
                                                                              • Cateacutegorisation (3)
                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                              • Tendance
                                                                              • Moyenne Glissante
                                                                              • Moyenne Glissante (2)
                                                                              • Moyenne Glissante (3)
                                                                              • Seacuteries financiegraveres
                                                                              • Seacuteries financiegraveres (2)
                                                                              • Seacuteries financiegraveres (3)
                                                                              • Seacuteries financiegraveres (4)
                                                                              • Creacuteation drsquoun Portefeuille
                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                              • CUBE (DB2 amp SQL-Server)
                                                                              • GROUPING SETS
                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                              • Slide 112
                                                                              • Slide 113
                                                                              • Slide 114
                                                                              • Autres Opeacuterations Utiles
                                                                              • Sous-Tables Parameacutetreacutees
                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                              • Liste de Choix Multibase
                                                                              • Liste de Choix Multibase (2)
                                                                              • Liste de Choix Multibase Reacutesultat
                                                                              • FIN
                                                                              • Slide 149

                                                                                40

                                                                                Sous-requecirctes

                                                                                Eleacutements Dominant (Skyline)ndash Tout fournisseur drsquoune piegravece X pour

                                                                                laquelle il nrsquoy a pas drsquoun autre fournisseur qui Livrerait au moins la mecircme quantiteacute mais plus

                                                                                vite ou Livrerait au moins aussi vite mais en quantiteacute

                                                                                plus grande

                                                                                41

                                                                                Sous-requecirctes

                                                                                Skylinendash Tout objet non-domineacute (cacheacute

                                                                                totalement) par un autre

                                                                                SELECT X[s] X[p] qty delay

                                                                                FROM SP X

                                                                                where not exists

                                                                                (select from SP as Y

                                                                                where (Yqty gt= XQty and YDelay lt XDelay or

                                                                                Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                                order by X[p]

                                                                                42

                                                                                Sous-requecirctes Reacutesultat

                                                                                s p qty delay

                                                                                s1 p1 300 15

                                                                                s4 p1 200 13

                                                                                s3 p2 400 15

                                                                                s2 p2 300 12

                                                                                s1 p3 400 17

                                                                                s4 p4 300 11

                                                                                s4 p5 400 7

                                                                                s1 p6 100 8

                                                                                s p qty Delay

                                                                                s1 p1 300 15

                                                                                s1 p2 200 12

                                                                                s1 p3 400 17

                                                                                s1 p4 200 11

                                                                                s1 p5 100 7

                                                                                s1 p6 100 8

                                                                                s2 p2 300 12

                                                                                s3 p2 400 15

                                                                                s4 p1 200 13

                                                                                s4 p2 200 15

                                                                                s4 p4 300 11

                                                                                s4 p5 400 7

                                                                                S

                                                                                43

                                                                                Sous-requecirctes

                                                                                On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                                SELECT Count() AS TotalQty

                                                                                FROM (select distinct qty from sp)

                                                                                On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                                SELECT SP[s] SP[p] qty

                                                                                (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                                round(qtyTotalQty 3) AS Fraction

                                                                                FROM SP order by [s]

                                                                                44

                                                                                Sous-requecirctes

                                                                                s p qty TotalQty Fraction

                                                                                s1 p1 300 1300 0231

                                                                                s1 p6 100 1300 0077

                                                                                s1 p5 100 1300 0077

                                                                                s1 p4 200 1300 0154

                                                                                s1 p3 400 1300 0308

                                                                                s1 p2 200 1300 0154

                                                                                s2 p2 300 300 1

                                                                                s3 p2 400 400 1

                                                                                s4 p5 400 1100 0364

                                                                                s4 p4 300 1100 0273

                                                                                s4 p2 200 1100 0182

                                                                                bull ReacutesultatSP

                                                                                s p qty

                                                                                s1 p1 300

                                                                                s1 p2 200

                                                                                s1 p3 400

                                                                                s1 p4 200

                                                                                s1 p5 100

                                                                                s1 p6 100

                                                                                s2 p2 300

                                                                                s3 p2 400

                                                                                s4 p1 200

                                                                                s4 p2 200

                                                                                s4 p4 300

                                                                                s4 p5 400

                                                                                45

                                                                                Sous-requecirctesbull En Mode Graphique

                                                                                s p qtyTotalQty

                                                                                Fraction

                                                                                s1 p1 300 1300 0231

                                                                                s1 p6 100 1300 0077

                                                                                s1 p5 100 1300 0077

                                                                                s1 p4 200 1300 0154

                                                                                s1 p3 400 1300 0308

                                                                                s1 p2 200 1300 0154

                                                                                s2 p2 300 300 1

                                                                                s3 p2 400 400 1

                                                                                s4 p5 400 1100 0364

                                                                                s4 p4 300 1100 0273

                                                                                s4 p2 200 1100 0182

                                                                                46

                                                                                Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                SELECT (select count(qty) from SP

                                                                                where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                probabiliteacute conditionnelle

                                                                                47

                                                                                Clause FROM imbriqueacutee

                                                                                Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                Agrave essayer

                                                                                48

                                                                                Clause FROM imbriqueacuteePossibiliteacutes

                                                                                ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                MsAccess

                                                                                ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                49

                                                                                Clause FROM imbriqueacutee

                                                                                SELECT sum(weight) AS [poids-total]

                                                                                FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                50

                                                                                Clause FROM imbriqueacutee

                                                                                select avg(moy1) as [moyenne-des-moyennes]

                                                                                FROM

                                                                                (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                51

                                                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                52

                                                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                totaux partiels et total geacuteneacuteral

                                                                                total_Id TotalQty

                                                                                s1 1300

                                                                                s2 300

                                                                                s3 400

                                                                                s4 400

                                                                                total Geacuteneacuteral

                                                                                2400

                                                                                53

                                                                                Valeurs nulles

                                                                                Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                Non WHERE HAVING GROUP BY (rel 1)

                                                                                Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                MsAccess Oui DISTINCT Autres clauses

                                                                                54

                                                                                Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                1 x gt y est vrai ou faux

                                                                                2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                SELECT FROM S WHERE CITY =Paris

                                                                                UNION

                                                                                SELECT FROM S WHERE NOT CITY = Paris

                                                                                est toujours pourquoi faire simpleSELECT FROM S

                                                                                si on peut faire compliqueacute

                                                                                55

                                                                                Valeurs nullesValeurs nulles

                                                                                SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                56

                                                                                Valeurs nulles

                                                                                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                LOG (nul) -gt Error A voir cas par cas

                                                                                57

                                                                                Fonctions Scalaires DateTemps

                                                                                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                58

                                                                                Fonctions Scalaires DateTemps

                                                                                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                weekday(day(now())-1) AS [day]FROM S

                                                                                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                59

                                                                                Fonctions Scalaires DateTemps

                                                                                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                Interval Explanation

                                                                                Yyyy Year

                                                                                q Quarter

                                                                                m Month

                                                                                y Day of year

                                                                                d Day

                                                                                w Weekday

                                                                                ww Week

                                                                                h Hour

                                                                                n Minute

                                                                                s Second

                                                                                60

                                                                                Fonctions Scalaires DateTemps

                                                                                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                Test DateDiff

                                                                                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                61

                                                                                Fonctions Scalaires DateTemps

                                                                                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                62

                                                                                Fonction Scalaire RND

                                                                                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                FROM SPORDER BY rnd(qty) DESC

                                                                                echantillon s rank

                                                                                s1 502628087997437E-02

                                                                                s4 0518015921115875

                                                                                s3 075702953338623

                                                                                63

                                                                                Fonction Scalaire RND

                                                                                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                FROM SPORDER BY rnd(qty) DESC

                                                                                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                Votre commentaire ici

                                                                                64

                                                                                Fonctions Financiegraveres

                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                65

                                                                                Fonctions Financiegraveres

                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                66

                                                                                Fonction DDB

                                                                                insert into DDB (cost salvage life factor amortiss period)

                                                                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                DDB(cost salvage life period factor) as amortiss period

                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                67

                                                                                Fonction DDB

                                                                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                68

                                                                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                nombres neacutegatifs

                                                                                Fonction PMT

                                                                                69

                                                                                Fonction PMT

                                                                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                Fonction PMT calcul dannuiteacute demprunt

                                                                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                preacutesentevaleur_payeacutee surprime

                                                                                -16049 005 20 200000 -320980 -120980

                                                                                70

                                                                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                Et les nuls que log ne supporte pas

                                                                                Anneacutee relative

                                                                                Taux

                                                                                1 4

                                                                                2 4

                                                                                3 3

                                                                                4 5

                                                                                5 5

                                                                                Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                71

                                                                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                est eacutequivalente agrave

                                                                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                WHERE XP = SPP) FROM SP

                                                                                Testez

                                                                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                72

                                                                                LIST Function La requecircte

                                                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                Comme les tabulations croiseacutees

                                                                                ndash Mais en + simple

                                                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                ndash En mono attribut (2004)

                                                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                sous-formulaires

                                                                                73

                                                                                LIST Function

                                                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                74

                                                                                GROUP BY avec WHERE

                                                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                75

                                                                                GROUP BY

                                                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                Pourquoi

                                                                                76

                                                                                GROUP BY avec HAVING

                                                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                77

                                                                                T-GROUP BY Proposeacute pour SQL

                                                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                Le rocircle de -join par rapport agrave equi-join

                                                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                78

                                                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                FROM SP Vrai ou Faux

                                                                                79

                                                                                T-GROUP BY

                                                                                Reacutesultat

                                                                                part avg_qty_other_parts part_avg_qty

                                                                                p1 250 300

                                                                                p2 262 250

                                                                                p3 245 400

                                                                                p4 260 250

                                                                                p5 260 250

                                                                                p6 272 100

                                                                                80

                                                                                T-GROUP BY

                                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                81

                                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                s p qtyND-rank

                                                                                s4 p5 400 1

                                                                                s3 p2 400 1

                                                                                s1 p3 400 1

                                                                                s4 p4 300 4

                                                                                s2 p2 300 4

                                                                                s1 p1 300 4

                                                                                s4 p2 200 7

                                                                                s1 p4 200 7

                                                                                s1 p2 200 7

                                                                                s4 p1 200 7

                                                                                s1 p6 100 11

                                                                                s1 p5 100 11

                                                                                82

                                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                                s p qty ND-rank

                                                                                s4 p5 400 1

                                                                                s3 p2 400 1

                                                                                s1 p3 400 1

                                                                                s4 p4 300 4

                                                                                s2 p2 300 4

                                                                                s1 p1 300 4

                                                                                s4 p2 200 7

                                                                                s1 p4 200 7

                                                                                s1 p2 200 7

                                                                                s4 p1 200 7

                                                                                s1 p6 100 11

                                                                                s1 p5 100 11

                                                                                83

                                                                                Rangs Denses(Dense Ranking)

                                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                s p qtyD-rank

                                                                                s1 p3 400 1

                                                                                s3 p2 400 1

                                                                                s4 p5 400 1

                                                                                s1 p1 300 2

                                                                                s2 p2 300 2

                                                                                s4 p4 300 2

                                                                                s1 p4 200 3

                                                                                s1 p2 200 3

                                                                                s4 p2 200 3

                                                                                s4 p1 200 3

                                                                                s1 p6 100 4

                                                                                s1 p5 100 4

                                                                                84

                                                                                Rangs DensesGraphique MsAccess

                                                                                s p qty D-rank

                                                                                s1 p3 400 1

                                                                                s3 p2 400 1

                                                                                s4 p5 400 1

                                                                                s1 p1 300 2

                                                                                s2 p2 300 2

                                                                                s4 p4 300 2

                                                                                s1 p4 200 3

                                                                                s1 p2 200 3

                                                                                s4 p2 200 3

                                                                                s4 p1 200 3

                                                                                s1 p6 100 4

                                                                                s1 p5 100 4

                                                                                85

                                                                                Distribution

                                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                86

                                                                                Reacutesultat

                                                                                s Distribution

                                                                                s1 0419

                                                                                s2 0097

                                                                                s3 0129

                                                                                s4 0355

                                                                                87

                                                                                Distribution Cumulative

                                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                FROM SP

                                                                                ORDER BY SP[s]

                                                                                88

                                                                                Reacutesultat

                                                                                sDistribution Cumuleacutee

                                                                                s1 0419

                                                                                s2 0516

                                                                                s3 0645

                                                                                s4 1

                                                                                89

                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                90

                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                FROM S

                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                s1 Smith Paris good good

                                                                                s2 Jones 100 london good VGood

                                                                                s3 Blake 30 Paris good good

                                                                                s4 Clark 10 london OK OK

                                                                                s5 Adams 30 Athens good good

                                                                                bull Notez le traitement du null

                                                                                91

                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                FROM P where weight gt 13

                                                                                union

                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                UNION

                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                ORDER BY warning DESC weight DESC

                                                                                pname weight Warning

                                                                                cam 19 Very Heavy

                                                                                cog 19 Very Heavy

                                                                                bolt 17 Very Heavy

                                                                                nut 14 Very Heavy

                                                                                screw 14 Very Heavy

                                                                                nut 14 Quite Heavy

                                                                                screw 14 Quite Heavy

                                                                                screw 12 Quite Heavy

                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                92

                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                SP

                                                                                s p qtyQty1

                                                                                s1 p1 300 400

                                                                                s1 p2 200

                                                                                s1 p3 400 600

                                                                                s1 p4 200 300

                                                                                s1 p5 100

                                                                                s1 p6 100 200

                                                                                s2 p2 300 500

                                                                                s3 p2 400

                                                                                s4 p1 200 100

                                                                                s4 p2 200

                                                                                s4 p4 300

                                                                                s4 p5 400

                                                                                93

                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                SP

                                                                                s p qtyQty1

                                                                                s1 p1 300 400

                                                                                s1 p2 200

                                                                                s1 p3 400 600

                                                                                s1 p4 200 300

                                                                                s1 p5 100

                                                                                s1 p6 100 200

                                                                                s2 p2 300 500

                                                                                s3 p2 400

                                                                                s4 p1 200 100

                                                                                s4 p2 200

                                                                                s4 p4 300

                                                                                s4 p5 400

                                                                                qty for partpredicted or

                                                                                unknown Qty1

                                                                                100 p5

                                                                                100 predicted value 200

                                                                                200 p2

                                                                                200 predicted value 200

                                                                                300 p4

                                                                                300 predicted value 450

                                                                                400 p2

                                                                                400 p5

                                                                                400 predicted value 600

                                                                                94

                                                                                Tendance

                                                                                qty Qty1

                                                                                100 200

                                                                                200 300

                                                                                300 400

                                                                                400 600

                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                Graph 3D avec Qty en abscisses

                                                                                95

                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                30102008 120 27102008 4

                                                                                25102008 131 22102008 4

                                                                                23102008 127 20102008 4

                                                                                17102008 269 14102008 4

                                                                                15102008 60 12102008 4

                                                                                11102008 295 08102008 4

                                                                                09102008 340 06102008 4

                                                                                08102008 324 05102008 4

                                                                                06102008 315 03102008 4

                                                                                96

                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                Graphique avec une info-bulle

                                                                                97

                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                glissantes

                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                bull MAVG

                                                                                bull MSUM

                                                                                bull MDIFF

                                                                                bull Voir Teradata + loin

                                                                                98

                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                99

                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                100

                                                                                Seacuteries financiegraveres

                                                                                capital taux nval apregraves n ans

                                                                                taux1val1 apregraves n ans

                                                                                GainAbs GainRel

                                                                                100 005 1 105 006 106 1 1

                                                                                100 005 2 110 006 112 2 2

                                                                                100 005 3 115 006 119 4 4

                                                                                100 005 4 121 006 126 5 5

                                                                                100 005 5 127 006 133 6 6

                                                                                100 005 6 134 006 141 7 7

                                                                                100 005 7 140 006 150 10 10

                                                                                100 005 8 147 006 159 12 12

                                                                                100 005 9 155 006 168 13 13

                                                                                100 005 10 162 006 179 17 17

                                                                                100 005 11 171 006 189 18 18

                                                                                100 005 12 179 006 201 22 22

                                                                                100 005 13 188 006 213 25 25

                                                                                100 005 14 197 006 226 29 29

                                                                                100 005 15 207 006 239 32 32

                                                                                100 005 16 218 006 254 36 36

                                                                                100 005 17 229 006 269 40 40

                                                                                100 005 18 240 006 285 45 45

                                                                                100 005 19 252 006 302 50 50

                                                                                100 005 20 265 006 320 55 55

                                                                                101

                                                                                Seacuteries financiegraveres

                                                                                102

                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                financiers de la table Produits

                                                                                bull Dans la limite L de la somme donneacutee

                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                bull En ordre descendant de prix

                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                bull Plusieurs actionshellip

                                                                                103

                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                P prix

                                                                                p3 200

                                                                                p1 200

                                                                                p2 400

                                                                                p3 200

                                                                                p4 100

                                                                                p6 100

                                                                                p5 300

                                                                                p8 300

                                                                                p7 400

                                                                                p10 200

                                                                                p12 300

                                                                                p13 300

                                                                                104

                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                ORDER BY 4 desc 8 123

                                                                                105

                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                106

                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                107

                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                108

                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                109

                                                                                CUBE(DB2 amp SQL-Server)

                                                                                CUBE(DB2 amp SQL-Server)

                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                110

                                                                                GROUPING SETS

                                                                                On indique explicitement les groupesndash entre ()

                                                                                le groupe () est constitueacute de toute la table

                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                WHERE SP P = PP AND SP S = SS

                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                HAVING tot-qty gt 100

                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                111

                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                112

                                                                                ROLLUP

                                                                                Remarquez le laquo null as cityraquo

                                                                                113

                                                                                ROLLUP

                                                                                114

                                                                                ROLLUP

                                                                                Et le CUBE

                                                                                Une solution pour l ambiguiumlteacute

                                                                                de certains nuls

                                                                                115

                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                Wiley (publ)

                                                                                116

                                                                                Sous-Tables Parameacutetreacutees

                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                117

                                                                                Sous-Tables Parameacutetreacutees

                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                118

                                                                                Sous-Tables Parameacutetreacutees

                                                                                119

                                                                                Sous-Tables Parameacutetreacutees

                                                                                120

                                                                                Sous-Tables Parameacutetreacutees

                                                                                121

                                                                                Sous-Tables Parameacutetreacutees

                                                                                122

                                                                                Sous-Tables Parameacutetreacutees

                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                123

                                                                                Sous-Tables Parameacutetreacutees

                                                                                Exeacutecution autonome

                                                                                124

                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                hellip

                                                                                125

                                                                                Liste de Choix Multibase

                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                126

                                                                                Liste de Choix MultibaseReacutesultat

                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                Tregraves bonne question agrave Microsoft

                                                                                148

                                                                                FIN

                                                                                149

                                                                                • SQL Avanceacute 2010
                                                                                • Quoi amp Pourquoi
                                                                                • Slide 3
                                                                                • Synonymes
                                                                                • Noms dattributs
                                                                                • Slide 6
                                                                                • Slide 7
                                                                                • Slide 8
                                                                                • Insertion dans une Vue
                                                                                • Insertion dans une Vue (2)
                                                                                • MAJ drsquoune Vue MsAccess
                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                • Suppression dans une Vue MsAccess
                                                                                • MsAccess Leacutegendes
                                                                                • Expressions de valeur
                                                                                • Expressions de valeur (2)
                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                • UNION et Noms Drsquoattributs
                                                                                • UNION et ORDER BY
                                                                                • ORDER BY et expressions de valeur
                                                                                • ORDER BY et expressions de valeur (2)
                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                • Preacutedicat TOP
                                                                                • Preacutedicat TOP (2)
                                                                                • Clause BETWEEN
                                                                                • Limitations de NOT
                                                                                • ANY et ALL
                                                                                • Injection SQL
                                                                                • Injection SQL (2)
                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                • Tabulations Croiseacutees
                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                • Tabulations Croiseacutees (2)
                                                                                • Tabulations Croiseacutees (3)
                                                                                • Tabulations Croiseacutees (4)
                                                                                • Tabulations Croiseacutees (5)
                                                                                • XOR
                                                                                • IMP
                                                                                • Sous-requecirctes
                                                                                • Sous-requecirctes (2)
                                                                                • Sous-requecirctes (3)
                                                                                • Sous-requecirctes (4)
                                                                                • Sous-requecirctes (5)
                                                                                • Sous-requecirctes (6)
                                                                                • Sous-requecirctes (7)
                                                                                • Application aux Probabiliteacutes
                                                                                • Clause FROM imbriqueacutee
                                                                                • Clause FROM imbriqueacutee (2)
                                                                                • Clause FROM imbriqueacutee (3)
                                                                                • Clause FROM imbriqueacutee (4)
                                                                                • Clause FROM imbriqueacutee (5)
                                                                                • Clause FROM imbriqueacutee (6)
                                                                                • Valeurs nulles
                                                                                • Valeurs nulles (2)
                                                                                • Valeurs nulles (3)
                                                                                • Valeurs nulles (4)
                                                                                • Fonctions Scalaires DateTemps
                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                • Fonction Scalaire RND
                                                                                • Fonction Scalaire RND (2)
                                                                                • Fonctions Financiegraveres
                                                                                • Fonctions Financiegraveres (2)
                                                                                • Fonction DDB
                                                                                • Fonction DDB (2)
                                                                                • Fonction PMT
                                                                                • Fonction PMT (2)
                                                                                • Placement agrave taux variable
                                                                                • GROUP BY
                                                                                • LIST Function
                                                                                • LIST Function (2)
                                                                                • GROUP BY avec WHERE
                                                                                • GROUP BY (2)
                                                                                • GROUP BY avec HAVING
                                                                                • T-GROUP BY
                                                                                • T-GROUP BY (2)
                                                                                • T-GROUP BY (3)
                                                                                • T-GROUP BY (4)
                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                • Rangs Denses (Dense Ranking)
                                                                                • Rangs Denses Graphique MsAccess
                                                                                • Distribution
                                                                                • Reacutesultat
                                                                                • Distribution Cumulative
                                                                                • Reacutesultat (2)
                                                                                • Cateacutegorisation
                                                                                • Cateacutegorisation (2)
                                                                                • Cateacutegorisation (3)
                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                • Tendance
                                                                                • Moyenne Glissante
                                                                                • Moyenne Glissante (2)
                                                                                • Moyenne Glissante (3)
                                                                                • Seacuteries financiegraveres
                                                                                • Seacuteries financiegraveres (2)
                                                                                • Seacuteries financiegraveres (3)
                                                                                • Seacuteries financiegraveres (4)
                                                                                • Creacuteation drsquoun Portefeuille
                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                • GROUPING SETS
                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                • Slide 112
                                                                                • Slide 113
                                                                                • Slide 114
                                                                                • Autres Opeacuterations Utiles
                                                                                • Sous-Tables Parameacutetreacutees
                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                • Liste de Choix Multibase
                                                                                • Liste de Choix Multibase (2)
                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                • FIN
                                                                                • Slide 149

                                                                                  41

                                                                                  Sous-requecirctes

                                                                                  Skylinendash Tout objet non-domineacute (cacheacute

                                                                                  totalement) par un autre

                                                                                  SELECT X[s] X[p] qty delay

                                                                                  FROM SP X

                                                                                  where not exists

                                                                                  (select from SP as Y

                                                                                  where (Yqty gt= XQty and YDelay lt XDelay or

                                                                                  Yqty gt XQty and YDelay lt= XDelay) and X[p] = Y[p])

                                                                                  order by X[p]

                                                                                  42

                                                                                  Sous-requecirctes Reacutesultat

                                                                                  s p qty delay

                                                                                  s1 p1 300 15

                                                                                  s4 p1 200 13

                                                                                  s3 p2 400 15

                                                                                  s2 p2 300 12

                                                                                  s1 p3 400 17

                                                                                  s4 p4 300 11

                                                                                  s4 p5 400 7

                                                                                  s1 p6 100 8

                                                                                  s p qty Delay

                                                                                  s1 p1 300 15

                                                                                  s1 p2 200 12

                                                                                  s1 p3 400 17

                                                                                  s1 p4 200 11

                                                                                  s1 p5 100 7

                                                                                  s1 p6 100 8

                                                                                  s2 p2 300 12

                                                                                  s3 p2 400 15

                                                                                  s4 p1 200 13

                                                                                  s4 p2 200 15

                                                                                  s4 p4 300 11

                                                                                  s4 p5 400 7

                                                                                  S

                                                                                  43

                                                                                  Sous-requecirctes

                                                                                  On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                                  SELECT Count() AS TotalQty

                                                                                  FROM (select distinct qty from sp)

                                                                                  On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                                  SELECT SP[s] SP[p] qty

                                                                                  (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                                  round(qtyTotalQty 3) AS Fraction

                                                                                  FROM SP order by [s]

                                                                                  44

                                                                                  Sous-requecirctes

                                                                                  s p qty TotalQty Fraction

                                                                                  s1 p1 300 1300 0231

                                                                                  s1 p6 100 1300 0077

                                                                                  s1 p5 100 1300 0077

                                                                                  s1 p4 200 1300 0154

                                                                                  s1 p3 400 1300 0308

                                                                                  s1 p2 200 1300 0154

                                                                                  s2 p2 300 300 1

                                                                                  s3 p2 400 400 1

                                                                                  s4 p5 400 1100 0364

                                                                                  s4 p4 300 1100 0273

                                                                                  s4 p2 200 1100 0182

                                                                                  bull ReacutesultatSP

                                                                                  s p qty

                                                                                  s1 p1 300

                                                                                  s1 p2 200

                                                                                  s1 p3 400

                                                                                  s1 p4 200

                                                                                  s1 p5 100

                                                                                  s1 p6 100

                                                                                  s2 p2 300

                                                                                  s3 p2 400

                                                                                  s4 p1 200

                                                                                  s4 p2 200

                                                                                  s4 p4 300

                                                                                  s4 p5 400

                                                                                  45

                                                                                  Sous-requecirctesbull En Mode Graphique

                                                                                  s p qtyTotalQty

                                                                                  Fraction

                                                                                  s1 p1 300 1300 0231

                                                                                  s1 p6 100 1300 0077

                                                                                  s1 p5 100 1300 0077

                                                                                  s1 p4 200 1300 0154

                                                                                  s1 p3 400 1300 0308

                                                                                  s1 p2 200 1300 0154

                                                                                  s2 p2 300 300 1

                                                                                  s3 p2 400 400 1

                                                                                  s4 p5 400 1100 0364

                                                                                  s4 p4 300 1100 0273

                                                                                  s4 p2 200 1100 0182

                                                                                  46

                                                                                  Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                  SELECT (select count(qty) from SP

                                                                                  where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                  FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                  probabiliteacute conditionnelle

                                                                                  47

                                                                                  Clause FROM imbriqueacutee

                                                                                  Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                  Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                  Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                  Agrave essayer

                                                                                  48

                                                                                  Clause FROM imbriqueacuteePossibiliteacutes

                                                                                  ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                  ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                  MsAccess

                                                                                  ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                  Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                  49

                                                                                  Clause FROM imbriqueacutee

                                                                                  SELECT sum(weight) AS [poids-total]

                                                                                  FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                  UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                  50

                                                                                  Clause FROM imbriqueacutee

                                                                                  select avg(moy1) as [moyenne-des-moyennes]

                                                                                  FROM

                                                                                  (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                  UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                  51

                                                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                  select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                  52

                                                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                  totaux partiels et total geacuteneacuteral

                                                                                  total_Id TotalQty

                                                                                  s1 1300

                                                                                  s2 300

                                                                                  s3 400

                                                                                  s4 400

                                                                                  total Geacuteneacuteral

                                                                                  2400

                                                                                  53

                                                                                  Valeurs nulles

                                                                                  Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                  En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                  DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                  Non WHERE HAVING GROUP BY (rel 1)

                                                                                  Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                  MsAccess Oui DISTINCT Autres clauses

                                                                                  54

                                                                                  Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                  1 x gt y est vrai ou faux

                                                                                  2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                  DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                  SELECT FROM S WHERE CITY =Paris

                                                                                  UNION

                                                                                  SELECT FROM S WHERE NOT CITY = Paris

                                                                                  est toujours pourquoi faire simpleSELECT FROM S

                                                                                  si on peut faire compliqueacute

                                                                                  55

                                                                                  Valeurs nullesValeurs nulles

                                                                                  SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                  SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                  Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                  56

                                                                                  Valeurs nulles

                                                                                  Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                  LOG (nul) -gt Error A voir cas par cas

                                                                                  57

                                                                                  Fonctions Scalaires DateTemps

                                                                                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                  58

                                                                                  Fonctions Scalaires DateTemps

                                                                                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                  weekday(day(now())-1) AS [day]FROM S

                                                                                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                  59

                                                                                  Fonctions Scalaires DateTemps

                                                                                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                  Interval Explanation

                                                                                  Yyyy Year

                                                                                  q Quarter

                                                                                  m Month

                                                                                  y Day of year

                                                                                  d Day

                                                                                  w Weekday

                                                                                  ww Week

                                                                                  h Hour

                                                                                  n Minute

                                                                                  s Second

                                                                                  60

                                                                                  Fonctions Scalaires DateTemps

                                                                                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                  Test DateDiff

                                                                                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                  61

                                                                                  Fonctions Scalaires DateTemps

                                                                                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                  Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                  62

                                                                                  Fonction Scalaire RND

                                                                                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                                  echantillon s rank

                                                                                  s1 502628087997437E-02

                                                                                  s4 0518015921115875

                                                                                  s3 075702953338623

                                                                                  63

                                                                                  Fonction Scalaire RND

                                                                                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                  Votre commentaire ici

                                                                                  64

                                                                                  Fonctions Financiegraveres

                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                  65

                                                                                  Fonctions Financiegraveres

                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                  66

                                                                                  Fonction DDB

                                                                                  insert into DDB (cost salvage life factor amortiss period)

                                                                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                  DDB(cost salvage life period factor) as amortiss period

                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                  67

                                                                                  Fonction DDB

                                                                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                  68

                                                                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                  nombres neacutegatifs

                                                                                  Fonction PMT

                                                                                  69

                                                                                  Fonction PMT

                                                                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                  Fonction PMT calcul dannuiteacute demprunt

                                                                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                  preacutesentevaleur_payeacutee surprime

                                                                                  -16049 005 20 200000 -320980 -120980

                                                                                  70

                                                                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                  Et les nuls que log ne supporte pas

                                                                                  Anneacutee relative

                                                                                  Taux

                                                                                  1 4

                                                                                  2 4

                                                                                  3 3

                                                                                  4 5

                                                                                  5 5

                                                                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                  71

                                                                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                  est eacutequivalente agrave

                                                                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                  WHERE XP = SPP) FROM SP

                                                                                  Testez

                                                                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                  72

                                                                                  LIST Function La requecircte

                                                                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                  Comme les tabulations croiseacutees

                                                                                  ndash Mais en + simple

                                                                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                  ndash En mono attribut (2004)

                                                                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                  sous-formulaires

                                                                                  73

                                                                                  LIST Function

                                                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                  74

                                                                                  GROUP BY avec WHERE

                                                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                  75

                                                                                  GROUP BY

                                                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                  Pourquoi

                                                                                  76

                                                                                  GROUP BY avec HAVING

                                                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                  77

                                                                                  T-GROUP BY Proposeacute pour SQL

                                                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                  Le rocircle de -join par rapport agrave equi-join

                                                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                  78

                                                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                  FROM SP Vrai ou Faux

                                                                                  79

                                                                                  T-GROUP BY

                                                                                  Reacutesultat

                                                                                  part avg_qty_other_parts part_avg_qty

                                                                                  p1 250 300

                                                                                  p2 262 250

                                                                                  p3 245 400

                                                                                  p4 260 250

                                                                                  p5 260 250

                                                                                  p6 272 100

                                                                                  80

                                                                                  T-GROUP BY

                                                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                  81

                                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                  s p qtyND-rank

                                                                                  s4 p5 400 1

                                                                                  s3 p2 400 1

                                                                                  s1 p3 400 1

                                                                                  s4 p4 300 4

                                                                                  s2 p2 300 4

                                                                                  s1 p1 300 4

                                                                                  s4 p2 200 7

                                                                                  s1 p4 200 7

                                                                                  s1 p2 200 7

                                                                                  s4 p1 200 7

                                                                                  s1 p6 100 11

                                                                                  s1 p5 100 11

                                                                                  82

                                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                                  s p qty ND-rank

                                                                                  s4 p5 400 1

                                                                                  s3 p2 400 1

                                                                                  s1 p3 400 1

                                                                                  s4 p4 300 4

                                                                                  s2 p2 300 4

                                                                                  s1 p1 300 4

                                                                                  s4 p2 200 7

                                                                                  s1 p4 200 7

                                                                                  s1 p2 200 7

                                                                                  s4 p1 200 7

                                                                                  s1 p6 100 11

                                                                                  s1 p5 100 11

                                                                                  83

                                                                                  Rangs Denses(Dense Ranking)

                                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                  s p qtyD-rank

                                                                                  s1 p3 400 1

                                                                                  s3 p2 400 1

                                                                                  s4 p5 400 1

                                                                                  s1 p1 300 2

                                                                                  s2 p2 300 2

                                                                                  s4 p4 300 2

                                                                                  s1 p4 200 3

                                                                                  s1 p2 200 3

                                                                                  s4 p2 200 3

                                                                                  s4 p1 200 3

                                                                                  s1 p6 100 4

                                                                                  s1 p5 100 4

                                                                                  84

                                                                                  Rangs DensesGraphique MsAccess

                                                                                  s p qty D-rank

                                                                                  s1 p3 400 1

                                                                                  s3 p2 400 1

                                                                                  s4 p5 400 1

                                                                                  s1 p1 300 2

                                                                                  s2 p2 300 2

                                                                                  s4 p4 300 2

                                                                                  s1 p4 200 3

                                                                                  s1 p2 200 3

                                                                                  s4 p2 200 3

                                                                                  s4 p1 200 3

                                                                                  s1 p6 100 4

                                                                                  s1 p5 100 4

                                                                                  85

                                                                                  Distribution

                                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                  86

                                                                                  Reacutesultat

                                                                                  s Distribution

                                                                                  s1 0419

                                                                                  s2 0097

                                                                                  s3 0129

                                                                                  s4 0355

                                                                                  87

                                                                                  Distribution Cumulative

                                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                  FROM SP

                                                                                  ORDER BY SP[s]

                                                                                  88

                                                                                  Reacutesultat

                                                                                  sDistribution Cumuleacutee

                                                                                  s1 0419

                                                                                  s2 0516

                                                                                  s3 0645

                                                                                  s4 1

                                                                                  89

                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                  90

                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                  FROM S

                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                  s1 Smith Paris good good

                                                                                  s2 Jones 100 london good VGood

                                                                                  s3 Blake 30 Paris good good

                                                                                  s4 Clark 10 london OK OK

                                                                                  s5 Adams 30 Athens good good

                                                                                  bull Notez le traitement du null

                                                                                  91

                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                  FROM P where weight gt 13

                                                                                  union

                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                  UNION

                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                  ORDER BY warning DESC weight DESC

                                                                                  pname weight Warning

                                                                                  cam 19 Very Heavy

                                                                                  cog 19 Very Heavy

                                                                                  bolt 17 Very Heavy

                                                                                  nut 14 Very Heavy

                                                                                  screw 14 Very Heavy

                                                                                  nut 14 Quite Heavy

                                                                                  screw 14 Quite Heavy

                                                                                  screw 12 Quite Heavy

                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                  92

                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                  SP

                                                                                  s p qtyQty1

                                                                                  s1 p1 300 400

                                                                                  s1 p2 200

                                                                                  s1 p3 400 600

                                                                                  s1 p4 200 300

                                                                                  s1 p5 100

                                                                                  s1 p6 100 200

                                                                                  s2 p2 300 500

                                                                                  s3 p2 400

                                                                                  s4 p1 200 100

                                                                                  s4 p2 200

                                                                                  s4 p4 300

                                                                                  s4 p5 400

                                                                                  93

                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                  SP

                                                                                  s p qtyQty1

                                                                                  s1 p1 300 400

                                                                                  s1 p2 200

                                                                                  s1 p3 400 600

                                                                                  s1 p4 200 300

                                                                                  s1 p5 100

                                                                                  s1 p6 100 200

                                                                                  s2 p2 300 500

                                                                                  s3 p2 400

                                                                                  s4 p1 200 100

                                                                                  s4 p2 200

                                                                                  s4 p4 300

                                                                                  s4 p5 400

                                                                                  qty for partpredicted or

                                                                                  unknown Qty1

                                                                                  100 p5

                                                                                  100 predicted value 200

                                                                                  200 p2

                                                                                  200 predicted value 200

                                                                                  300 p4

                                                                                  300 predicted value 450

                                                                                  400 p2

                                                                                  400 p5

                                                                                  400 predicted value 600

                                                                                  94

                                                                                  Tendance

                                                                                  qty Qty1

                                                                                  100 200

                                                                                  200 300

                                                                                  300 400

                                                                                  400 600

                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                  Graph 3D avec Qty en abscisses

                                                                                  95

                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                  30102008 120 27102008 4

                                                                                  25102008 131 22102008 4

                                                                                  23102008 127 20102008 4

                                                                                  17102008 269 14102008 4

                                                                                  15102008 60 12102008 4

                                                                                  11102008 295 08102008 4

                                                                                  09102008 340 06102008 4

                                                                                  08102008 324 05102008 4

                                                                                  06102008 315 03102008 4

                                                                                  96

                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                  Graphique avec une info-bulle

                                                                                  97

                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                  glissantes

                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                  bull MAVG

                                                                                  bull MSUM

                                                                                  bull MDIFF

                                                                                  bull Voir Teradata + loin

                                                                                  98

                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                  99

                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                  100

                                                                                  Seacuteries financiegraveres

                                                                                  capital taux nval apregraves n ans

                                                                                  taux1val1 apregraves n ans

                                                                                  GainAbs GainRel

                                                                                  100 005 1 105 006 106 1 1

                                                                                  100 005 2 110 006 112 2 2

                                                                                  100 005 3 115 006 119 4 4

                                                                                  100 005 4 121 006 126 5 5

                                                                                  100 005 5 127 006 133 6 6

                                                                                  100 005 6 134 006 141 7 7

                                                                                  100 005 7 140 006 150 10 10

                                                                                  100 005 8 147 006 159 12 12

                                                                                  100 005 9 155 006 168 13 13

                                                                                  100 005 10 162 006 179 17 17

                                                                                  100 005 11 171 006 189 18 18

                                                                                  100 005 12 179 006 201 22 22

                                                                                  100 005 13 188 006 213 25 25

                                                                                  100 005 14 197 006 226 29 29

                                                                                  100 005 15 207 006 239 32 32

                                                                                  100 005 16 218 006 254 36 36

                                                                                  100 005 17 229 006 269 40 40

                                                                                  100 005 18 240 006 285 45 45

                                                                                  100 005 19 252 006 302 50 50

                                                                                  100 005 20 265 006 320 55 55

                                                                                  101

                                                                                  Seacuteries financiegraveres

                                                                                  102

                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                  financiers de la table Produits

                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                  bull En ordre descendant de prix

                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                  bull Plusieurs actionshellip

                                                                                  103

                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                  P prix

                                                                                  p3 200

                                                                                  p1 200

                                                                                  p2 400

                                                                                  p3 200

                                                                                  p4 100

                                                                                  p6 100

                                                                                  p5 300

                                                                                  p8 300

                                                                                  p7 400

                                                                                  p10 200

                                                                                  p12 300

                                                                                  p13 300

                                                                                  104

                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                  ORDER BY 4 desc 8 123

                                                                                  105

                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                  106

                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                  107

                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                  108

                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                  109

                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                  110

                                                                                  GROUPING SETS

                                                                                  On indique explicitement les groupesndash entre ()

                                                                                  le groupe () est constitueacute de toute la table

                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                  HAVING tot-qty gt 100

                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                  111

                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                  112

                                                                                  ROLLUP

                                                                                  Remarquez le laquo null as cityraquo

                                                                                  113

                                                                                  ROLLUP

                                                                                  114

                                                                                  ROLLUP

                                                                                  Et le CUBE

                                                                                  Une solution pour l ambiguiumlteacute

                                                                                  de certains nuls

                                                                                  115

                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                  Wiley (publ)

                                                                                  116

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                  117

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                  118

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  119

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  120

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  121

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  122

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                  123

                                                                                  Sous-Tables Parameacutetreacutees

                                                                                  Exeacutecution autonome

                                                                                  124

                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                  hellip

                                                                                  125

                                                                                  Liste de Choix Multibase

                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                  126

                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                  Tregraves bonne question agrave Microsoft

                                                                                  148

                                                                                  FIN

                                                                                  149

                                                                                  • SQL Avanceacute 2010
                                                                                  • Quoi amp Pourquoi
                                                                                  • Slide 3
                                                                                  • Synonymes
                                                                                  • Noms dattributs
                                                                                  • Slide 6
                                                                                  • Slide 7
                                                                                  • Slide 8
                                                                                  • Insertion dans une Vue
                                                                                  • Insertion dans une Vue (2)
                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                  • Suppression dans une Vue MsAccess
                                                                                  • MsAccess Leacutegendes
                                                                                  • Expressions de valeur
                                                                                  • Expressions de valeur (2)
                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                  • UNION et Noms Drsquoattributs
                                                                                  • UNION et ORDER BY
                                                                                  • ORDER BY et expressions de valeur
                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                  • Preacutedicat TOP
                                                                                  • Preacutedicat TOP (2)
                                                                                  • Clause BETWEEN
                                                                                  • Limitations de NOT
                                                                                  • ANY et ALL
                                                                                  • Injection SQL
                                                                                  • Injection SQL (2)
                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                  • Tabulations Croiseacutees
                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                  • Tabulations Croiseacutees (2)
                                                                                  • Tabulations Croiseacutees (3)
                                                                                  • Tabulations Croiseacutees (4)
                                                                                  • Tabulations Croiseacutees (5)
                                                                                  • XOR
                                                                                  • IMP
                                                                                  • Sous-requecirctes
                                                                                  • Sous-requecirctes (2)
                                                                                  • Sous-requecirctes (3)
                                                                                  • Sous-requecirctes (4)
                                                                                  • Sous-requecirctes (5)
                                                                                  • Sous-requecirctes (6)
                                                                                  • Sous-requecirctes (7)
                                                                                  • Application aux Probabiliteacutes
                                                                                  • Clause FROM imbriqueacutee
                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                  • Valeurs nulles
                                                                                  • Valeurs nulles (2)
                                                                                  • Valeurs nulles (3)
                                                                                  • Valeurs nulles (4)
                                                                                  • Fonctions Scalaires DateTemps
                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                  • Fonction Scalaire RND
                                                                                  • Fonction Scalaire RND (2)
                                                                                  • Fonctions Financiegraveres
                                                                                  • Fonctions Financiegraveres (2)
                                                                                  • Fonction DDB
                                                                                  • Fonction DDB (2)
                                                                                  • Fonction PMT
                                                                                  • Fonction PMT (2)
                                                                                  • Placement agrave taux variable
                                                                                  • GROUP BY
                                                                                  • LIST Function
                                                                                  • LIST Function (2)
                                                                                  • GROUP BY avec WHERE
                                                                                  • GROUP BY (2)
                                                                                  • GROUP BY avec HAVING
                                                                                  • T-GROUP BY
                                                                                  • T-GROUP BY (2)
                                                                                  • T-GROUP BY (3)
                                                                                  • T-GROUP BY (4)
                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                  • Rangs Denses (Dense Ranking)
                                                                                  • Rangs Denses Graphique MsAccess
                                                                                  • Distribution
                                                                                  • Reacutesultat
                                                                                  • Distribution Cumulative
                                                                                  • Reacutesultat (2)
                                                                                  • Cateacutegorisation
                                                                                  • Cateacutegorisation (2)
                                                                                  • Cateacutegorisation (3)
                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                  • Tendance
                                                                                  • Moyenne Glissante
                                                                                  • Moyenne Glissante (2)
                                                                                  • Moyenne Glissante (3)
                                                                                  • Seacuteries financiegraveres
                                                                                  • Seacuteries financiegraveres (2)
                                                                                  • Seacuteries financiegraveres (3)
                                                                                  • Seacuteries financiegraveres (4)
                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                  • GROUPING SETS
                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                  • Slide 112
                                                                                  • Slide 113
                                                                                  • Slide 114
                                                                                  • Autres Opeacuterations Utiles
                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                  • Liste de Choix Multibase
                                                                                  • Liste de Choix Multibase (2)
                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                  • FIN
                                                                                  • Slide 149

                                                                                    42

                                                                                    Sous-requecirctes Reacutesultat

                                                                                    s p qty delay

                                                                                    s1 p1 300 15

                                                                                    s4 p1 200 13

                                                                                    s3 p2 400 15

                                                                                    s2 p2 300 12

                                                                                    s1 p3 400 17

                                                                                    s4 p4 300 11

                                                                                    s4 p5 400 7

                                                                                    s1 p6 100 8

                                                                                    s p qty Delay

                                                                                    s1 p1 300 15

                                                                                    s1 p2 200 12

                                                                                    s1 p3 400 17

                                                                                    s1 p4 200 11

                                                                                    s1 p5 100 7

                                                                                    s1 p6 100 8

                                                                                    s2 p2 300 12

                                                                                    s3 p2 400 15

                                                                                    s4 p1 200 13

                                                                                    s4 p2 200 15

                                                                                    s4 p4 300 11

                                                                                    s4 p5 400 7

                                                                                    S

                                                                                    43

                                                                                    Sous-requecirctes

                                                                                    On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                                    SELECT Count() AS TotalQty

                                                                                    FROM (select distinct qty from sp)

                                                                                    On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                                    SELECT SP[s] SP[p] qty

                                                                                    (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                                    round(qtyTotalQty 3) AS Fraction

                                                                                    FROM SP order by [s]

                                                                                    44

                                                                                    Sous-requecirctes

                                                                                    s p qty TotalQty Fraction

                                                                                    s1 p1 300 1300 0231

                                                                                    s1 p6 100 1300 0077

                                                                                    s1 p5 100 1300 0077

                                                                                    s1 p4 200 1300 0154

                                                                                    s1 p3 400 1300 0308

                                                                                    s1 p2 200 1300 0154

                                                                                    s2 p2 300 300 1

                                                                                    s3 p2 400 400 1

                                                                                    s4 p5 400 1100 0364

                                                                                    s4 p4 300 1100 0273

                                                                                    s4 p2 200 1100 0182

                                                                                    bull ReacutesultatSP

                                                                                    s p qty

                                                                                    s1 p1 300

                                                                                    s1 p2 200

                                                                                    s1 p3 400

                                                                                    s1 p4 200

                                                                                    s1 p5 100

                                                                                    s1 p6 100

                                                                                    s2 p2 300

                                                                                    s3 p2 400

                                                                                    s4 p1 200

                                                                                    s4 p2 200

                                                                                    s4 p4 300

                                                                                    s4 p5 400

                                                                                    45

                                                                                    Sous-requecirctesbull En Mode Graphique

                                                                                    s p qtyTotalQty

                                                                                    Fraction

                                                                                    s1 p1 300 1300 0231

                                                                                    s1 p6 100 1300 0077

                                                                                    s1 p5 100 1300 0077

                                                                                    s1 p4 200 1300 0154

                                                                                    s1 p3 400 1300 0308

                                                                                    s1 p2 200 1300 0154

                                                                                    s2 p2 300 300 1

                                                                                    s3 p2 400 400 1

                                                                                    s4 p5 400 1100 0364

                                                                                    s4 p4 300 1100 0273

                                                                                    s4 p2 200 1100 0182

                                                                                    46

                                                                                    Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                    SELECT (select count(qty) from SP

                                                                                    where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                    FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                    probabiliteacute conditionnelle

                                                                                    47

                                                                                    Clause FROM imbriqueacutee

                                                                                    Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                    Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                    Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                    Agrave essayer

                                                                                    48

                                                                                    Clause FROM imbriqueacuteePossibiliteacutes

                                                                                    ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                    ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                    MsAccess

                                                                                    ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                    Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                    49

                                                                                    Clause FROM imbriqueacutee

                                                                                    SELECT sum(weight) AS [poids-total]

                                                                                    FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                    UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                    50

                                                                                    Clause FROM imbriqueacutee

                                                                                    select avg(moy1) as [moyenne-des-moyennes]

                                                                                    FROM

                                                                                    (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                    51

                                                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                    52

                                                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                    totaux partiels et total geacuteneacuteral

                                                                                    total_Id TotalQty

                                                                                    s1 1300

                                                                                    s2 300

                                                                                    s3 400

                                                                                    s4 400

                                                                                    total Geacuteneacuteral

                                                                                    2400

                                                                                    53

                                                                                    Valeurs nulles

                                                                                    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                    Non WHERE HAVING GROUP BY (rel 1)

                                                                                    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                    MsAccess Oui DISTINCT Autres clauses

                                                                                    54

                                                                                    Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                    1 x gt y est vrai ou faux

                                                                                    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                    SELECT FROM S WHERE CITY =Paris

                                                                                    UNION

                                                                                    SELECT FROM S WHERE NOT CITY = Paris

                                                                                    est toujours pourquoi faire simpleSELECT FROM S

                                                                                    si on peut faire compliqueacute

                                                                                    55

                                                                                    Valeurs nullesValeurs nulles

                                                                                    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                    56

                                                                                    Valeurs nulles

                                                                                    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                    LOG (nul) -gt Error A voir cas par cas

                                                                                    57

                                                                                    Fonctions Scalaires DateTemps

                                                                                    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                    58

                                                                                    Fonctions Scalaires DateTemps

                                                                                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                    weekday(day(now())-1) AS [day]FROM S

                                                                                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                    59

                                                                                    Fonctions Scalaires DateTemps

                                                                                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                    Interval Explanation

                                                                                    Yyyy Year

                                                                                    q Quarter

                                                                                    m Month

                                                                                    y Day of year

                                                                                    d Day

                                                                                    w Weekday

                                                                                    ww Week

                                                                                    h Hour

                                                                                    n Minute

                                                                                    s Second

                                                                                    60

                                                                                    Fonctions Scalaires DateTemps

                                                                                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                    Test DateDiff

                                                                                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                    61

                                                                                    Fonctions Scalaires DateTemps

                                                                                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                    Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                    62

                                                                                    Fonction Scalaire RND

                                                                                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                                    echantillon s rank

                                                                                    s1 502628087997437E-02

                                                                                    s4 0518015921115875

                                                                                    s3 075702953338623

                                                                                    63

                                                                                    Fonction Scalaire RND

                                                                                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                    Votre commentaire ici

                                                                                    64

                                                                                    Fonctions Financiegraveres

                                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                    65

                                                                                    Fonctions Financiegraveres

                                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                    66

                                                                                    Fonction DDB

                                                                                    insert into DDB (cost salvage life factor amortiss period)

                                                                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                    DDB(cost salvage life period factor) as amortiss period

                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                    67

                                                                                    Fonction DDB

                                                                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                    68

                                                                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                    nombres neacutegatifs

                                                                                    Fonction PMT

                                                                                    69

                                                                                    Fonction PMT

                                                                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                    Fonction PMT calcul dannuiteacute demprunt

                                                                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                    preacutesentevaleur_payeacutee surprime

                                                                                    -16049 005 20 200000 -320980 -120980

                                                                                    70

                                                                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                    Et les nuls que log ne supporte pas

                                                                                    Anneacutee relative

                                                                                    Taux

                                                                                    1 4

                                                                                    2 4

                                                                                    3 3

                                                                                    4 5

                                                                                    5 5

                                                                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                    71

                                                                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                    est eacutequivalente agrave

                                                                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                    WHERE XP = SPP) FROM SP

                                                                                    Testez

                                                                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                    72

                                                                                    LIST Function La requecircte

                                                                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                    Comme les tabulations croiseacutees

                                                                                    ndash Mais en + simple

                                                                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                    ndash En mono attribut (2004)

                                                                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                    sous-formulaires

                                                                                    73

                                                                                    LIST Function

                                                                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                    74

                                                                                    GROUP BY avec WHERE

                                                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                    75

                                                                                    GROUP BY

                                                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                    Pourquoi

                                                                                    76

                                                                                    GROUP BY avec HAVING

                                                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                    77

                                                                                    T-GROUP BY Proposeacute pour SQL

                                                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                    Le rocircle de -join par rapport agrave equi-join

                                                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                    78

                                                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                    FROM SP Vrai ou Faux

                                                                                    79

                                                                                    T-GROUP BY

                                                                                    Reacutesultat

                                                                                    part avg_qty_other_parts part_avg_qty

                                                                                    p1 250 300

                                                                                    p2 262 250

                                                                                    p3 245 400

                                                                                    p4 260 250

                                                                                    p5 260 250

                                                                                    p6 272 100

                                                                                    80

                                                                                    T-GROUP BY

                                                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                    81

                                                                                    Rangs Non-Denses(Non Dense Ranking)

                                                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                    s p qtyND-rank

                                                                                    s4 p5 400 1

                                                                                    s3 p2 400 1

                                                                                    s1 p3 400 1

                                                                                    s4 p4 300 4

                                                                                    s2 p2 300 4

                                                                                    s1 p1 300 4

                                                                                    s4 p2 200 7

                                                                                    s1 p4 200 7

                                                                                    s1 p2 200 7

                                                                                    s4 p1 200 7

                                                                                    s1 p6 100 11

                                                                                    s1 p5 100 11

                                                                                    82

                                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                                    s p qty ND-rank

                                                                                    s4 p5 400 1

                                                                                    s3 p2 400 1

                                                                                    s1 p3 400 1

                                                                                    s4 p4 300 4

                                                                                    s2 p2 300 4

                                                                                    s1 p1 300 4

                                                                                    s4 p2 200 7

                                                                                    s1 p4 200 7

                                                                                    s1 p2 200 7

                                                                                    s4 p1 200 7

                                                                                    s1 p6 100 11

                                                                                    s1 p5 100 11

                                                                                    83

                                                                                    Rangs Denses(Dense Ranking)

                                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                    s p qtyD-rank

                                                                                    s1 p3 400 1

                                                                                    s3 p2 400 1

                                                                                    s4 p5 400 1

                                                                                    s1 p1 300 2

                                                                                    s2 p2 300 2

                                                                                    s4 p4 300 2

                                                                                    s1 p4 200 3

                                                                                    s1 p2 200 3

                                                                                    s4 p2 200 3

                                                                                    s4 p1 200 3

                                                                                    s1 p6 100 4

                                                                                    s1 p5 100 4

                                                                                    84

                                                                                    Rangs DensesGraphique MsAccess

                                                                                    s p qty D-rank

                                                                                    s1 p3 400 1

                                                                                    s3 p2 400 1

                                                                                    s4 p5 400 1

                                                                                    s1 p1 300 2

                                                                                    s2 p2 300 2

                                                                                    s4 p4 300 2

                                                                                    s1 p4 200 3

                                                                                    s1 p2 200 3

                                                                                    s4 p2 200 3

                                                                                    s4 p1 200 3

                                                                                    s1 p6 100 4

                                                                                    s1 p5 100 4

                                                                                    85

                                                                                    Distribution

                                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                    86

                                                                                    Reacutesultat

                                                                                    s Distribution

                                                                                    s1 0419

                                                                                    s2 0097

                                                                                    s3 0129

                                                                                    s4 0355

                                                                                    87

                                                                                    Distribution Cumulative

                                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                    FROM SP

                                                                                    ORDER BY SP[s]

                                                                                    88

                                                                                    Reacutesultat

                                                                                    sDistribution Cumuleacutee

                                                                                    s1 0419

                                                                                    s2 0516

                                                                                    s3 0645

                                                                                    s4 1

                                                                                    89

                                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                                    90

                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                    FROM S

                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                    s1 Smith Paris good good

                                                                                    s2 Jones 100 london good VGood

                                                                                    s3 Blake 30 Paris good good

                                                                                    s4 Clark 10 london OK OK

                                                                                    s5 Adams 30 Athens good good

                                                                                    bull Notez le traitement du null

                                                                                    91

                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                    FROM P where weight gt 13

                                                                                    union

                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                    UNION

                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                    ORDER BY warning DESC weight DESC

                                                                                    pname weight Warning

                                                                                    cam 19 Very Heavy

                                                                                    cog 19 Very Heavy

                                                                                    bolt 17 Very Heavy

                                                                                    nut 14 Very Heavy

                                                                                    screw 14 Very Heavy

                                                                                    nut 14 Quite Heavy

                                                                                    screw 14 Quite Heavy

                                                                                    screw 12 Quite Heavy

                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                    92

                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                    SP

                                                                                    s p qtyQty1

                                                                                    s1 p1 300 400

                                                                                    s1 p2 200

                                                                                    s1 p3 400 600

                                                                                    s1 p4 200 300

                                                                                    s1 p5 100

                                                                                    s1 p6 100 200

                                                                                    s2 p2 300 500

                                                                                    s3 p2 400

                                                                                    s4 p1 200 100

                                                                                    s4 p2 200

                                                                                    s4 p4 300

                                                                                    s4 p5 400

                                                                                    93

                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                    SP

                                                                                    s p qtyQty1

                                                                                    s1 p1 300 400

                                                                                    s1 p2 200

                                                                                    s1 p3 400 600

                                                                                    s1 p4 200 300

                                                                                    s1 p5 100

                                                                                    s1 p6 100 200

                                                                                    s2 p2 300 500

                                                                                    s3 p2 400

                                                                                    s4 p1 200 100

                                                                                    s4 p2 200

                                                                                    s4 p4 300

                                                                                    s4 p5 400

                                                                                    qty for partpredicted or

                                                                                    unknown Qty1

                                                                                    100 p5

                                                                                    100 predicted value 200

                                                                                    200 p2

                                                                                    200 predicted value 200

                                                                                    300 p4

                                                                                    300 predicted value 450

                                                                                    400 p2

                                                                                    400 p5

                                                                                    400 predicted value 600

                                                                                    94

                                                                                    Tendance

                                                                                    qty Qty1

                                                                                    100 200

                                                                                    200 300

                                                                                    300 400

                                                                                    400 600

                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                    Graph 3D avec Qty en abscisses

                                                                                    95

                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                    30102008 120 27102008 4

                                                                                    25102008 131 22102008 4

                                                                                    23102008 127 20102008 4

                                                                                    17102008 269 14102008 4

                                                                                    15102008 60 12102008 4

                                                                                    11102008 295 08102008 4

                                                                                    09102008 340 06102008 4

                                                                                    08102008 324 05102008 4

                                                                                    06102008 315 03102008 4

                                                                                    96

                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                    Graphique avec une info-bulle

                                                                                    97

                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                    glissantes

                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                    bull MAVG

                                                                                    bull MSUM

                                                                                    bull MDIFF

                                                                                    bull Voir Teradata + loin

                                                                                    98

                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                    99

                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                    100

                                                                                    Seacuteries financiegraveres

                                                                                    capital taux nval apregraves n ans

                                                                                    taux1val1 apregraves n ans

                                                                                    GainAbs GainRel

                                                                                    100 005 1 105 006 106 1 1

                                                                                    100 005 2 110 006 112 2 2

                                                                                    100 005 3 115 006 119 4 4

                                                                                    100 005 4 121 006 126 5 5

                                                                                    100 005 5 127 006 133 6 6

                                                                                    100 005 6 134 006 141 7 7

                                                                                    100 005 7 140 006 150 10 10

                                                                                    100 005 8 147 006 159 12 12

                                                                                    100 005 9 155 006 168 13 13

                                                                                    100 005 10 162 006 179 17 17

                                                                                    100 005 11 171 006 189 18 18

                                                                                    100 005 12 179 006 201 22 22

                                                                                    100 005 13 188 006 213 25 25

                                                                                    100 005 14 197 006 226 29 29

                                                                                    100 005 15 207 006 239 32 32

                                                                                    100 005 16 218 006 254 36 36

                                                                                    100 005 17 229 006 269 40 40

                                                                                    100 005 18 240 006 285 45 45

                                                                                    100 005 19 252 006 302 50 50

                                                                                    100 005 20 265 006 320 55 55

                                                                                    101

                                                                                    Seacuteries financiegraveres

                                                                                    102

                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                    financiers de la table Produits

                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                    bull En ordre descendant de prix

                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                    bull Plusieurs actionshellip

                                                                                    103

                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                    P prix

                                                                                    p3 200

                                                                                    p1 200

                                                                                    p2 400

                                                                                    p3 200

                                                                                    p4 100

                                                                                    p6 100

                                                                                    p5 300

                                                                                    p8 300

                                                                                    p7 400

                                                                                    p10 200

                                                                                    p12 300

                                                                                    p13 300

                                                                                    104

                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                    ORDER BY 4 desc 8 123

                                                                                    105

                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                    106

                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                    107

                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                    108

                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                    109

                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                    110

                                                                                    GROUPING SETS

                                                                                    On indique explicitement les groupesndash entre ()

                                                                                    le groupe () est constitueacute de toute la table

                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                    HAVING tot-qty gt 100

                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                    111

                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                    112

                                                                                    ROLLUP

                                                                                    Remarquez le laquo null as cityraquo

                                                                                    113

                                                                                    ROLLUP

                                                                                    114

                                                                                    ROLLUP

                                                                                    Et le CUBE

                                                                                    Une solution pour l ambiguiumlteacute

                                                                                    de certains nuls

                                                                                    115

                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                    Wiley (publ)

                                                                                    116

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                    117

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                    118

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    119

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    120

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    121

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    122

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                    123

                                                                                    Sous-Tables Parameacutetreacutees

                                                                                    Exeacutecution autonome

                                                                                    124

                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                    hellip

                                                                                    125

                                                                                    Liste de Choix Multibase

                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                    126

                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                    Tregraves bonne question agrave Microsoft

                                                                                    148

                                                                                    FIN

                                                                                    149

                                                                                    • SQL Avanceacute 2010
                                                                                    • Quoi amp Pourquoi
                                                                                    • Slide 3
                                                                                    • Synonymes
                                                                                    • Noms dattributs
                                                                                    • Slide 6
                                                                                    • Slide 7
                                                                                    • Slide 8
                                                                                    • Insertion dans une Vue
                                                                                    • Insertion dans une Vue (2)
                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                    • Suppression dans une Vue MsAccess
                                                                                    • MsAccess Leacutegendes
                                                                                    • Expressions de valeur
                                                                                    • Expressions de valeur (2)
                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                    • UNION et Noms Drsquoattributs
                                                                                    • UNION et ORDER BY
                                                                                    • ORDER BY et expressions de valeur
                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                    • Preacutedicat TOP
                                                                                    • Preacutedicat TOP (2)
                                                                                    • Clause BETWEEN
                                                                                    • Limitations de NOT
                                                                                    • ANY et ALL
                                                                                    • Injection SQL
                                                                                    • Injection SQL (2)
                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                    • Tabulations Croiseacutees
                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                    • Tabulations Croiseacutees (2)
                                                                                    • Tabulations Croiseacutees (3)
                                                                                    • Tabulations Croiseacutees (4)
                                                                                    • Tabulations Croiseacutees (5)
                                                                                    • XOR
                                                                                    • IMP
                                                                                    • Sous-requecirctes
                                                                                    • Sous-requecirctes (2)
                                                                                    • Sous-requecirctes (3)
                                                                                    • Sous-requecirctes (4)
                                                                                    • Sous-requecirctes (5)
                                                                                    • Sous-requecirctes (6)
                                                                                    • Sous-requecirctes (7)
                                                                                    • Application aux Probabiliteacutes
                                                                                    • Clause FROM imbriqueacutee
                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                    • Valeurs nulles
                                                                                    • Valeurs nulles (2)
                                                                                    • Valeurs nulles (3)
                                                                                    • Valeurs nulles (4)
                                                                                    • Fonctions Scalaires DateTemps
                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                    • Fonction Scalaire RND
                                                                                    • Fonction Scalaire RND (2)
                                                                                    • Fonctions Financiegraveres
                                                                                    • Fonctions Financiegraveres (2)
                                                                                    • Fonction DDB
                                                                                    • Fonction DDB (2)
                                                                                    • Fonction PMT
                                                                                    • Fonction PMT (2)
                                                                                    • Placement agrave taux variable
                                                                                    • GROUP BY
                                                                                    • LIST Function
                                                                                    • LIST Function (2)
                                                                                    • GROUP BY avec WHERE
                                                                                    • GROUP BY (2)
                                                                                    • GROUP BY avec HAVING
                                                                                    • T-GROUP BY
                                                                                    • T-GROUP BY (2)
                                                                                    • T-GROUP BY (3)
                                                                                    • T-GROUP BY (4)
                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                    • Rangs Denses (Dense Ranking)
                                                                                    • Rangs Denses Graphique MsAccess
                                                                                    • Distribution
                                                                                    • Reacutesultat
                                                                                    • Distribution Cumulative
                                                                                    • Reacutesultat (2)
                                                                                    • Cateacutegorisation
                                                                                    • Cateacutegorisation (2)
                                                                                    • Cateacutegorisation (3)
                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                    • Tendance
                                                                                    • Moyenne Glissante
                                                                                    • Moyenne Glissante (2)
                                                                                    • Moyenne Glissante (3)
                                                                                    • Seacuteries financiegraveres
                                                                                    • Seacuteries financiegraveres (2)
                                                                                    • Seacuteries financiegraveres (3)
                                                                                    • Seacuteries financiegraveres (4)
                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                    • GROUPING SETS
                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                    • Slide 112
                                                                                    • Slide 113
                                                                                    • Slide 114
                                                                                    • Autres Opeacuterations Utiles
                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                    • Liste de Choix Multibase
                                                                                    • Liste de Choix Multibase (2)
                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                    • FIN
                                                                                    • Slide 149

                                                                                      43

                                                                                      Sous-requecirctes

                                                                                      On peut avoir une sous-requecircte dans la clause FROM (voir aussi + loin)

                                                                                      SELECT Count() AS TotalQty

                                                                                      FROM (select distinct qty from sp)

                                                                                      On peut aussi avoir une sous-requecircte dans la clause SELECT

                                                                                      SELECT SP[s] SP[p] qty

                                                                                      (select sum(qty) from sp as X where X[s] = SP[s]) AS TotalQty

                                                                                      round(qtyTotalQty 3) AS Fraction

                                                                                      FROM SP order by [s]

                                                                                      44

                                                                                      Sous-requecirctes

                                                                                      s p qty TotalQty Fraction

                                                                                      s1 p1 300 1300 0231

                                                                                      s1 p6 100 1300 0077

                                                                                      s1 p5 100 1300 0077

                                                                                      s1 p4 200 1300 0154

                                                                                      s1 p3 400 1300 0308

                                                                                      s1 p2 200 1300 0154

                                                                                      s2 p2 300 300 1

                                                                                      s3 p2 400 400 1

                                                                                      s4 p5 400 1100 0364

                                                                                      s4 p4 300 1100 0273

                                                                                      s4 p2 200 1100 0182

                                                                                      bull ReacutesultatSP

                                                                                      s p qty

                                                                                      s1 p1 300

                                                                                      s1 p2 200

                                                                                      s1 p3 400

                                                                                      s1 p4 200

                                                                                      s1 p5 100

                                                                                      s1 p6 100

                                                                                      s2 p2 300

                                                                                      s3 p2 400

                                                                                      s4 p1 200

                                                                                      s4 p2 200

                                                                                      s4 p4 300

                                                                                      s4 p5 400

                                                                                      45

                                                                                      Sous-requecirctesbull En Mode Graphique

                                                                                      s p qtyTotalQty

                                                                                      Fraction

                                                                                      s1 p1 300 1300 0231

                                                                                      s1 p6 100 1300 0077

                                                                                      s1 p5 100 1300 0077

                                                                                      s1 p4 200 1300 0154

                                                                                      s1 p3 400 1300 0308

                                                                                      s1 p2 200 1300 0154

                                                                                      s2 p2 300 300 1

                                                                                      s3 p2 400 400 1

                                                                                      s4 p5 400 1100 0364

                                                                                      s4 p4 300 1100 0273

                                                                                      s4 p2 200 1100 0182

                                                                                      46

                                                                                      Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                      SELECT (select count(qty) from SP

                                                                                      where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                      FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                      probabiliteacute conditionnelle

                                                                                      47

                                                                                      Clause FROM imbriqueacutee

                                                                                      Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                      Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                      Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                      Agrave essayer

                                                                                      48

                                                                                      Clause FROM imbriqueacuteePossibiliteacutes

                                                                                      ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                      ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                      MsAccess

                                                                                      ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                      Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                      49

                                                                                      Clause FROM imbriqueacutee

                                                                                      SELECT sum(weight) AS [poids-total]

                                                                                      FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                      UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                      50

                                                                                      Clause FROM imbriqueacutee

                                                                                      select avg(moy1) as [moyenne-des-moyennes]

                                                                                      FROM

                                                                                      (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                      UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                      51

                                                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                      52

                                                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                      totaux partiels et total geacuteneacuteral

                                                                                      total_Id TotalQty

                                                                                      s1 1300

                                                                                      s2 300

                                                                                      s3 400

                                                                                      s4 400

                                                                                      total Geacuteneacuteral

                                                                                      2400

                                                                                      53

                                                                                      Valeurs nulles

                                                                                      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                      Non WHERE HAVING GROUP BY (rel 1)

                                                                                      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                      MsAccess Oui DISTINCT Autres clauses

                                                                                      54

                                                                                      Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                      1 x gt y est vrai ou faux

                                                                                      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                      SELECT FROM S WHERE CITY =Paris

                                                                                      UNION

                                                                                      SELECT FROM S WHERE NOT CITY = Paris

                                                                                      est toujours pourquoi faire simpleSELECT FROM S

                                                                                      si on peut faire compliqueacute

                                                                                      55

                                                                                      Valeurs nullesValeurs nulles

                                                                                      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                      56

                                                                                      Valeurs nulles

                                                                                      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                      LOG (nul) -gt Error A voir cas par cas

                                                                                      57

                                                                                      Fonctions Scalaires DateTemps

                                                                                      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                      58

                                                                                      Fonctions Scalaires DateTemps

                                                                                      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                      weekday(day(now())-1) AS [day]FROM S

                                                                                      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                      59

                                                                                      Fonctions Scalaires DateTemps

                                                                                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                      Interval Explanation

                                                                                      Yyyy Year

                                                                                      q Quarter

                                                                                      m Month

                                                                                      y Day of year

                                                                                      d Day

                                                                                      w Weekday

                                                                                      ww Week

                                                                                      h Hour

                                                                                      n Minute

                                                                                      s Second

                                                                                      60

                                                                                      Fonctions Scalaires DateTemps

                                                                                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                      Test DateDiff

                                                                                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                      61

                                                                                      Fonctions Scalaires DateTemps

                                                                                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                      Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                      62

                                                                                      Fonction Scalaire RND

                                                                                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                                      echantillon s rank

                                                                                      s1 502628087997437E-02

                                                                                      s4 0518015921115875

                                                                                      s3 075702953338623

                                                                                      63

                                                                                      Fonction Scalaire RND

                                                                                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                      Votre commentaire ici

                                                                                      64

                                                                                      Fonctions Financiegraveres

                                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                      65

                                                                                      Fonctions Financiegraveres

                                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                      66

                                                                                      Fonction DDB

                                                                                      insert into DDB (cost salvage life factor amortiss period)

                                                                                      select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                      DDB(cost salvage life period factor) as amortiss period

                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                      67

                                                                                      Fonction DDB

                                                                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                      68

                                                                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                      nombres neacutegatifs

                                                                                      Fonction PMT

                                                                                      69

                                                                                      Fonction PMT

                                                                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                      Fonction PMT calcul dannuiteacute demprunt

                                                                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                      preacutesentevaleur_payeacutee surprime

                                                                                      -16049 005 20 200000 -320980 -120980

                                                                                      70

                                                                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                      Et les nuls que log ne supporte pas

                                                                                      Anneacutee relative

                                                                                      Taux

                                                                                      1 4

                                                                                      2 4

                                                                                      3 3

                                                                                      4 5

                                                                                      5 5

                                                                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                      71

                                                                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                      est eacutequivalente agrave

                                                                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                      WHERE XP = SPP) FROM SP

                                                                                      Testez

                                                                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                      72

                                                                                      LIST Function La requecircte

                                                                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                      Comme les tabulations croiseacutees

                                                                                      ndash Mais en + simple

                                                                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                      ndash En mono attribut (2004)

                                                                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                      sous-formulaires

                                                                                      73

                                                                                      LIST Function

                                                                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                      74

                                                                                      GROUP BY avec WHERE

                                                                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                      75

                                                                                      GROUP BY

                                                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                      Pourquoi

                                                                                      76

                                                                                      GROUP BY avec HAVING

                                                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                      77

                                                                                      T-GROUP BY Proposeacute pour SQL

                                                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                      Le rocircle de -join par rapport agrave equi-join

                                                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                      78

                                                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                      FROM SP Vrai ou Faux

                                                                                      79

                                                                                      T-GROUP BY

                                                                                      Reacutesultat

                                                                                      part avg_qty_other_parts part_avg_qty

                                                                                      p1 250 300

                                                                                      p2 262 250

                                                                                      p3 245 400

                                                                                      p4 260 250

                                                                                      p5 260 250

                                                                                      p6 272 100

                                                                                      80

                                                                                      T-GROUP BY

                                                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                      81

                                                                                      Rangs Non-Denses(Non Dense Ranking)

                                                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                      s p qtyND-rank

                                                                                      s4 p5 400 1

                                                                                      s3 p2 400 1

                                                                                      s1 p3 400 1

                                                                                      s4 p4 300 4

                                                                                      s2 p2 300 4

                                                                                      s1 p1 300 4

                                                                                      s4 p2 200 7

                                                                                      s1 p4 200 7

                                                                                      s1 p2 200 7

                                                                                      s4 p1 200 7

                                                                                      s1 p6 100 11

                                                                                      s1 p5 100 11

                                                                                      82

                                                                                      Rangs Non-Denses(Graphique MsAccess)

                                                                                      s p qty ND-rank

                                                                                      s4 p5 400 1

                                                                                      s3 p2 400 1

                                                                                      s1 p3 400 1

                                                                                      s4 p4 300 4

                                                                                      s2 p2 300 4

                                                                                      s1 p1 300 4

                                                                                      s4 p2 200 7

                                                                                      s1 p4 200 7

                                                                                      s1 p2 200 7

                                                                                      s4 p1 200 7

                                                                                      s1 p6 100 11

                                                                                      s1 p5 100 11

                                                                                      83

                                                                                      Rangs Denses(Dense Ranking)

                                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                      s p qtyD-rank

                                                                                      s1 p3 400 1

                                                                                      s3 p2 400 1

                                                                                      s4 p5 400 1

                                                                                      s1 p1 300 2

                                                                                      s2 p2 300 2

                                                                                      s4 p4 300 2

                                                                                      s1 p4 200 3

                                                                                      s1 p2 200 3

                                                                                      s4 p2 200 3

                                                                                      s4 p1 200 3

                                                                                      s1 p6 100 4

                                                                                      s1 p5 100 4

                                                                                      84

                                                                                      Rangs DensesGraphique MsAccess

                                                                                      s p qty D-rank

                                                                                      s1 p3 400 1

                                                                                      s3 p2 400 1

                                                                                      s4 p5 400 1

                                                                                      s1 p1 300 2

                                                                                      s2 p2 300 2

                                                                                      s4 p4 300 2

                                                                                      s1 p4 200 3

                                                                                      s1 p2 200 3

                                                                                      s4 p2 200 3

                                                                                      s4 p1 200 3

                                                                                      s1 p6 100 4

                                                                                      s1 p5 100 4

                                                                                      85

                                                                                      Distribution

                                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                      86

                                                                                      Reacutesultat

                                                                                      s Distribution

                                                                                      s1 0419

                                                                                      s2 0097

                                                                                      s3 0129

                                                                                      s4 0355

                                                                                      87

                                                                                      Distribution Cumulative

                                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                      FROM SP

                                                                                      ORDER BY SP[s]

                                                                                      88

                                                                                      Reacutesultat

                                                                                      sDistribution Cumuleacutee

                                                                                      s1 0419

                                                                                      s2 0516

                                                                                      s3 0645

                                                                                      s4 1

                                                                                      89

                                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                                      90

                                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                      FROM S

                                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                      s1 Smith Paris good good

                                                                                      s2 Jones 100 london good VGood

                                                                                      s3 Blake 30 Paris good good

                                                                                      s4 Clark 10 london OK OK

                                                                                      s5 Adams 30 Athens good good

                                                                                      bull Notez le traitement du null

                                                                                      91

                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                      FROM P where weight gt 13

                                                                                      union

                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                      UNION

                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                      ORDER BY warning DESC weight DESC

                                                                                      pname weight Warning

                                                                                      cam 19 Very Heavy

                                                                                      cog 19 Very Heavy

                                                                                      bolt 17 Very Heavy

                                                                                      nut 14 Very Heavy

                                                                                      screw 14 Very Heavy

                                                                                      nut 14 Quite Heavy

                                                                                      screw 14 Quite Heavy

                                                                                      screw 12 Quite Heavy

                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                      92

                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                      SP

                                                                                      s p qtyQty1

                                                                                      s1 p1 300 400

                                                                                      s1 p2 200

                                                                                      s1 p3 400 600

                                                                                      s1 p4 200 300

                                                                                      s1 p5 100

                                                                                      s1 p6 100 200

                                                                                      s2 p2 300 500

                                                                                      s3 p2 400

                                                                                      s4 p1 200 100

                                                                                      s4 p2 200

                                                                                      s4 p4 300

                                                                                      s4 p5 400

                                                                                      93

                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                      SP

                                                                                      s p qtyQty1

                                                                                      s1 p1 300 400

                                                                                      s1 p2 200

                                                                                      s1 p3 400 600

                                                                                      s1 p4 200 300

                                                                                      s1 p5 100

                                                                                      s1 p6 100 200

                                                                                      s2 p2 300 500

                                                                                      s3 p2 400

                                                                                      s4 p1 200 100

                                                                                      s4 p2 200

                                                                                      s4 p4 300

                                                                                      s4 p5 400

                                                                                      qty for partpredicted or

                                                                                      unknown Qty1

                                                                                      100 p5

                                                                                      100 predicted value 200

                                                                                      200 p2

                                                                                      200 predicted value 200

                                                                                      300 p4

                                                                                      300 predicted value 450

                                                                                      400 p2

                                                                                      400 p5

                                                                                      400 predicted value 600

                                                                                      94

                                                                                      Tendance

                                                                                      qty Qty1

                                                                                      100 200

                                                                                      200 300

                                                                                      300 400

                                                                                      400 600

                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                      Graph 3D avec Qty en abscisses

                                                                                      95

                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                      30102008 120 27102008 4

                                                                                      25102008 131 22102008 4

                                                                                      23102008 127 20102008 4

                                                                                      17102008 269 14102008 4

                                                                                      15102008 60 12102008 4

                                                                                      11102008 295 08102008 4

                                                                                      09102008 340 06102008 4

                                                                                      08102008 324 05102008 4

                                                                                      06102008 315 03102008 4

                                                                                      96

                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                      Graphique avec une info-bulle

                                                                                      97

                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                      glissantes

                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                      bull MAVG

                                                                                      bull MSUM

                                                                                      bull MDIFF

                                                                                      bull Voir Teradata + loin

                                                                                      98

                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                      99

                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                      100

                                                                                      Seacuteries financiegraveres

                                                                                      capital taux nval apregraves n ans

                                                                                      taux1val1 apregraves n ans

                                                                                      GainAbs GainRel

                                                                                      100 005 1 105 006 106 1 1

                                                                                      100 005 2 110 006 112 2 2

                                                                                      100 005 3 115 006 119 4 4

                                                                                      100 005 4 121 006 126 5 5

                                                                                      100 005 5 127 006 133 6 6

                                                                                      100 005 6 134 006 141 7 7

                                                                                      100 005 7 140 006 150 10 10

                                                                                      100 005 8 147 006 159 12 12

                                                                                      100 005 9 155 006 168 13 13

                                                                                      100 005 10 162 006 179 17 17

                                                                                      100 005 11 171 006 189 18 18

                                                                                      100 005 12 179 006 201 22 22

                                                                                      100 005 13 188 006 213 25 25

                                                                                      100 005 14 197 006 226 29 29

                                                                                      100 005 15 207 006 239 32 32

                                                                                      100 005 16 218 006 254 36 36

                                                                                      100 005 17 229 006 269 40 40

                                                                                      100 005 18 240 006 285 45 45

                                                                                      100 005 19 252 006 302 50 50

                                                                                      100 005 20 265 006 320 55 55

                                                                                      101

                                                                                      Seacuteries financiegraveres

                                                                                      102

                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                      financiers de la table Produits

                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                      bull En ordre descendant de prix

                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                      bull Plusieurs actionshellip

                                                                                      103

                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                      P prix

                                                                                      p3 200

                                                                                      p1 200

                                                                                      p2 400

                                                                                      p3 200

                                                                                      p4 100

                                                                                      p6 100

                                                                                      p5 300

                                                                                      p8 300

                                                                                      p7 400

                                                                                      p10 200

                                                                                      p12 300

                                                                                      p13 300

                                                                                      104

                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                      ORDER BY 4 desc 8 123

                                                                                      105

                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                      106

                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                      107

                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                      108

                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                      109

                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                      110

                                                                                      GROUPING SETS

                                                                                      On indique explicitement les groupesndash entre ()

                                                                                      le groupe () est constitueacute de toute la table

                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                      HAVING tot-qty gt 100

                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                      111

                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                      112

                                                                                      ROLLUP

                                                                                      Remarquez le laquo null as cityraquo

                                                                                      113

                                                                                      ROLLUP

                                                                                      114

                                                                                      ROLLUP

                                                                                      Et le CUBE

                                                                                      Une solution pour l ambiguiumlteacute

                                                                                      de certains nuls

                                                                                      115

                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                      Wiley (publ)

                                                                                      116

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                      117

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                      118

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      119

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      120

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      121

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      122

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                      123

                                                                                      Sous-Tables Parameacutetreacutees

                                                                                      Exeacutecution autonome

                                                                                      124

                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                      hellip

                                                                                      125

                                                                                      Liste de Choix Multibase

                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                      126

                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                      Tregraves bonne question agrave Microsoft

                                                                                      148

                                                                                      FIN

                                                                                      149

                                                                                      • SQL Avanceacute 2010
                                                                                      • Quoi amp Pourquoi
                                                                                      • Slide 3
                                                                                      • Synonymes
                                                                                      • Noms dattributs
                                                                                      • Slide 6
                                                                                      • Slide 7
                                                                                      • Slide 8
                                                                                      • Insertion dans une Vue
                                                                                      • Insertion dans une Vue (2)
                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                      • Suppression dans une Vue MsAccess
                                                                                      • MsAccess Leacutegendes
                                                                                      • Expressions de valeur
                                                                                      • Expressions de valeur (2)
                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                      • UNION et Noms Drsquoattributs
                                                                                      • UNION et ORDER BY
                                                                                      • ORDER BY et expressions de valeur
                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                      • Preacutedicat TOP
                                                                                      • Preacutedicat TOP (2)
                                                                                      • Clause BETWEEN
                                                                                      • Limitations de NOT
                                                                                      • ANY et ALL
                                                                                      • Injection SQL
                                                                                      • Injection SQL (2)
                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                      • Tabulations Croiseacutees
                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                      • Tabulations Croiseacutees (2)
                                                                                      • Tabulations Croiseacutees (3)
                                                                                      • Tabulations Croiseacutees (4)
                                                                                      • Tabulations Croiseacutees (5)
                                                                                      • XOR
                                                                                      • IMP
                                                                                      • Sous-requecirctes
                                                                                      • Sous-requecirctes (2)
                                                                                      • Sous-requecirctes (3)
                                                                                      • Sous-requecirctes (4)
                                                                                      • Sous-requecirctes (5)
                                                                                      • Sous-requecirctes (6)
                                                                                      • Sous-requecirctes (7)
                                                                                      • Application aux Probabiliteacutes
                                                                                      • Clause FROM imbriqueacutee
                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                      • Valeurs nulles
                                                                                      • Valeurs nulles (2)
                                                                                      • Valeurs nulles (3)
                                                                                      • Valeurs nulles (4)
                                                                                      • Fonctions Scalaires DateTemps
                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                      • Fonction Scalaire RND
                                                                                      • Fonction Scalaire RND (2)
                                                                                      • Fonctions Financiegraveres
                                                                                      • Fonctions Financiegraveres (2)
                                                                                      • Fonction DDB
                                                                                      • Fonction DDB (2)
                                                                                      • Fonction PMT
                                                                                      • Fonction PMT (2)
                                                                                      • Placement agrave taux variable
                                                                                      • GROUP BY
                                                                                      • LIST Function
                                                                                      • LIST Function (2)
                                                                                      • GROUP BY avec WHERE
                                                                                      • GROUP BY (2)
                                                                                      • GROUP BY avec HAVING
                                                                                      • T-GROUP BY
                                                                                      • T-GROUP BY (2)
                                                                                      • T-GROUP BY (3)
                                                                                      • T-GROUP BY (4)
                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                      • Rangs Denses (Dense Ranking)
                                                                                      • Rangs Denses Graphique MsAccess
                                                                                      • Distribution
                                                                                      • Reacutesultat
                                                                                      • Distribution Cumulative
                                                                                      • Reacutesultat (2)
                                                                                      • Cateacutegorisation
                                                                                      • Cateacutegorisation (2)
                                                                                      • Cateacutegorisation (3)
                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                      • Tendance
                                                                                      • Moyenne Glissante
                                                                                      • Moyenne Glissante (2)
                                                                                      • Moyenne Glissante (3)
                                                                                      • Seacuteries financiegraveres
                                                                                      • Seacuteries financiegraveres (2)
                                                                                      • Seacuteries financiegraveres (3)
                                                                                      • Seacuteries financiegraveres (4)
                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                      • GROUPING SETS
                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                      • Slide 112
                                                                                      • Slide 113
                                                                                      • Slide 114
                                                                                      • Autres Opeacuterations Utiles
                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                      • Liste de Choix Multibase
                                                                                      • Liste de Choix Multibase (2)
                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                      • FIN
                                                                                      • Slide 149

                                                                                        44

                                                                                        Sous-requecirctes

                                                                                        s p qty TotalQty Fraction

                                                                                        s1 p1 300 1300 0231

                                                                                        s1 p6 100 1300 0077

                                                                                        s1 p5 100 1300 0077

                                                                                        s1 p4 200 1300 0154

                                                                                        s1 p3 400 1300 0308

                                                                                        s1 p2 200 1300 0154

                                                                                        s2 p2 300 300 1

                                                                                        s3 p2 400 400 1

                                                                                        s4 p5 400 1100 0364

                                                                                        s4 p4 300 1100 0273

                                                                                        s4 p2 200 1100 0182

                                                                                        bull ReacutesultatSP

                                                                                        s p qty

                                                                                        s1 p1 300

                                                                                        s1 p2 200

                                                                                        s1 p3 400

                                                                                        s1 p4 200

                                                                                        s1 p5 100

                                                                                        s1 p6 100

                                                                                        s2 p2 300

                                                                                        s3 p2 400

                                                                                        s4 p1 200

                                                                                        s4 p2 200

                                                                                        s4 p4 300

                                                                                        s4 p5 400

                                                                                        45

                                                                                        Sous-requecirctesbull En Mode Graphique

                                                                                        s p qtyTotalQty

                                                                                        Fraction

                                                                                        s1 p1 300 1300 0231

                                                                                        s1 p6 100 1300 0077

                                                                                        s1 p5 100 1300 0077

                                                                                        s1 p4 200 1300 0154

                                                                                        s1 p3 400 1300 0308

                                                                                        s1 p2 200 1300 0154

                                                                                        s2 p2 300 300 1

                                                                                        s3 p2 400 400 1

                                                                                        s4 p5 400 1100 0364

                                                                                        s4 p4 300 1100 0273

                                                                                        s4 p2 200 1100 0182

                                                                                        46

                                                                                        Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                        SELECT (select count(qty) from SP

                                                                                        where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                        FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                        probabiliteacute conditionnelle

                                                                                        47

                                                                                        Clause FROM imbriqueacutee

                                                                                        Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                        Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                        Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                        Agrave essayer

                                                                                        48

                                                                                        Clause FROM imbriqueacuteePossibiliteacutes

                                                                                        ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                        ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                        MsAccess

                                                                                        ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                        Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                        49

                                                                                        Clause FROM imbriqueacutee

                                                                                        SELECT sum(weight) AS [poids-total]

                                                                                        FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                        UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                        50

                                                                                        Clause FROM imbriqueacutee

                                                                                        select avg(moy1) as [moyenne-des-moyennes]

                                                                                        FROM

                                                                                        (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                        UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                        51

                                                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                        select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                        52

                                                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                        totaux partiels et total geacuteneacuteral

                                                                                        total_Id TotalQty

                                                                                        s1 1300

                                                                                        s2 300

                                                                                        s3 400

                                                                                        s4 400

                                                                                        total Geacuteneacuteral

                                                                                        2400

                                                                                        53

                                                                                        Valeurs nulles

                                                                                        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                        Non WHERE HAVING GROUP BY (rel 1)

                                                                                        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                        MsAccess Oui DISTINCT Autres clauses

                                                                                        54

                                                                                        Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                        1 x gt y est vrai ou faux

                                                                                        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                        SELECT FROM S WHERE CITY =Paris

                                                                                        UNION

                                                                                        SELECT FROM S WHERE NOT CITY = Paris

                                                                                        est toujours pourquoi faire simpleSELECT FROM S

                                                                                        si on peut faire compliqueacute

                                                                                        55

                                                                                        Valeurs nullesValeurs nulles

                                                                                        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                        56

                                                                                        Valeurs nulles

                                                                                        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                        LOG (nul) -gt Error A voir cas par cas

                                                                                        57

                                                                                        Fonctions Scalaires DateTemps

                                                                                        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                        58

                                                                                        Fonctions Scalaires DateTemps

                                                                                        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                        weekday(day(now())-1) AS [day]FROM S

                                                                                        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                        59

                                                                                        Fonctions Scalaires DateTemps

                                                                                        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                        Interval Explanation

                                                                                        Yyyy Year

                                                                                        q Quarter

                                                                                        m Month

                                                                                        y Day of year

                                                                                        d Day

                                                                                        w Weekday

                                                                                        ww Week

                                                                                        h Hour

                                                                                        n Minute

                                                                                        s Second

                                                                                        60

                                                                                        Fonctions Scalaires DateTemps

                                                                                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                        Test DateDiff

                                                                                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                        61

                                                                                        Fonctions Scalaires DateTemps

                                                                                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                        Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                        62

                                                                                        Fonction Scalaire RND

                                                                                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                                        echantillon s rank

                                                                                        s1 502628087997437E-02

                                                                                        s4 0518015921115875

                                                                                        s3 075702953338623

                                                                                        63

                                                                                        Fonction Scalaire RND

                                                                                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                        Votre commentaire ici

                                                                                        64

                                                                                        Fonctions Financiegraveres

                                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                        65

                                                                                        Fonctions Financiegraveres

                                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                        66

                                                                                        Fonction DDB

                                                                                        insert into DDB (cost salvage life factor amortiss period)

                                                                                        select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                        DDB(cost salvage life period factor) as amortiss period

                                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                        67

                                                                                        Fonction DDB

                                                                                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                        68

                                                                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                        nombres neacutegatifs

                                                                                        Fonction PMT

                                                                                        69

                                                                                        Fonction PMT

                                                                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                        Fonction PMT calcul dannuiteacute demprunt

                                                                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                        preacutesentevaleur_payeacutee surprime

                                                                                        -16049 005 20 200000 -320980 -120980

                                                                                        70

                                                                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                        Et les nuls que log ne supporte pas

                                                                                        Anneacutee relative

                                                                                        Taux

                                                                                        1 4

                                                                                        2 4

                                                                                        3 3

                                                                                        4 5

                                                                                        5 5

                                                                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                        71

                                                                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                        est eacutequivalente agrave

                                                                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                        WHERE XP = SPP) FROM SP

                                                                                        Testez

                                                                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                        72

                                                                                        LIST Function La requecircte

                                                                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                        Comme les tabulations croiseacutees

                                                                                        ndash Mais en + simple

                                                                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                        ndash En mono attribut (2004)

                                                                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                        sous-formulaires

                                                                                        73

                                                                                        LIST Function

                                                                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                        74

                                                                                        GROUP BY avec WHERE

                                                                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                        75

                                                                                        GROUP BY

                                                                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                        Pourquoi

                                                                                        76

                                                                                        GROUP BY avec HAVING

                                                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                        77

                                                                                        T-GROUP BY Proposeacute pour SQL

                                                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                        Le rocircle de -join par rapport agrave equi-join

                                                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                        78

                                                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                        FROM SP Vrai ou Faux

                                                                                        79

                                                                                        T-GROUP BY

                                                                                        Reacutesultat

                                                                                        part avg_qty_other_parts part_avg_qty

                                                                                        p1 250 300

                                                                                        p2 262 250

                                                                                        p3 245 400

                                                                                        p4 260 250

                                                                                        p5 260 250

                                                                                        p6 272 100

                                                                                        80

                                                                                        T-GROUP BY

                                                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                        81

                                                                                        Rangs Non-Denses(Non Dense Ranking)

                                                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                        s p qtyND-rank

                                                                                        s4 p5 400 1

                                                                                        s3 p2 400 1

                                                                                        s1 p3 400 1

                                                                                        s4 p4 300 4

                                                                                        s2 p2 300 4

                                                                                        s1 p1 300 4

                                                                                        s4 p2 200 7

                                                                                        s1 p4 200 7

                                                                                        s1 p2 200 7

                                                                                        s4 p1 200 7

                                                                                        s1 p6 100 11

                                                                                        s1 p5 100 11

                                                                                        82

                                                                                        Rangs Non-Denses(Graphique MsAccess)

                                                                                        s p qty ND-rank

                                                                                        s4 p5 400 1

                                                                                        s3 p2 400 1

                                                                                        s1 p3 400 1

                                                                                        s4 p4 300 4

                                                                                        s2 p2 300 4

                                                                                        s1 p1 300 4

                                                                                        s4 p2 200 7

                                                                                        s1 p4 200 7

                                                                                        s1 p2 200 7

                                                                                        s4 p1 200 7

                                                                                        s1 p6 100 11

                                                                                        s1 p5 100 11

                                                                                        83

                                                                                        Rangs Denses(Dense Ranking)

                                                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                        s p qtyD-rank

                                                                                        s1 p3 400 1

                                                                                        s3 p2 400 1

                                                                                        s4 p5 400 1

                                                                                        s1 p1 300 2

                                                                                        s2 p2 300 2

                                                                                        s4 p4 300 2

                                                                                        s1 p4 200 3

                                                                                        s1 p2 200 3

                                                                                        s4 p2 200 3

                                                                                        s4 p1 200 3

                                                                                        s1 p6 100 4

                                                                                        s1 p5 100 4

                                                                                        84

                                                                                        Rangs DensesGraphique MsAccess

                                                                                        s p qty D-rank

                                                                                        s1 p3 400 1

                                                                                        s3 p2 400 1

                                                                                        s4 p5 400 1

                                                                                        s1 p1 300 2

                                                                                        s2 p2 300 2

                                                                                        s4 p4 300 2

                                                                                        s1 p4 200 3

                                                                                        s1 p2 200 3

                                                                                        s4 p2 200 3

                                                                                        s4 p1 200 3

                                                                                        s1 p6 100 4

                                                                                        s1 p5 100 4

                                                                                        85

                                                                                        Distribution

                                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                        86

                                                                                        Reacutesultat

                                                                                        s Distribution

                                                                                        s1 0419

                                                                                        s2 0097

                                                                                        s3 0129

                                                                                        s4 0355

                                                                                        87

                                                                                        Distribution Cumulative

                                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                        FROM SP

                                                                                        ORDER BY SP[s]

                                                                                        88

                                                                                        Reacutesultat

                                                                                        sDistribution Cumuleacutee

                                                                                        s1 0419

                                                                                        s2 0516

                                                                                        s3 0645

                                                                                        s4 1

                                                                                        89

                                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                                        90

                                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                        FROM S

                                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                        s1 Smith Paris good good

                                                                                        s2 Jones 100 london good VGood

                                                                                        s3 Blake 30 Paris good good

                                                                                        s4 Clark 10 london OK OK

                                                                                        s5 Adams 30 Athens good good

                                                                                        bull Notez le traitement du null

                                                                                        91

                                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                                        FROM P where weight gt 13

                                                                                        union

                                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                        UNION

                                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                                        ORDER BY warning DESC weight DESC

                                                                                        pname weight Warning

                                                                                        cam 19 Very Heavy

                                                                                        cog 19 Very Heavy

                                                                                        bolt 17 Very Heavy

                                                                                        nut 14 Very Heavy

                                                                                        screw 14 Very Heavy

                                                                                        nut 14 Quite Heavy

                                                                                        screw 14 Quite Heavy

                                                                                        screw 12 Quite Heavy

                                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                        92

                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                        SP

                                                                                        s p qtyQty1

                                                                                        s1 p1 300 400

                                                                                        s1 p2 200

                                                                                        s1 p3 400 600

                                                                                        s1 p4 200 300

                                                                                        s1 p5 100

                                                                                        s1 p6 100 200

                                                                                        s2 p2 300 500

                                                                                        s3 p2 400

                                                                                        s4 p1 200 100

                                                                                        s4 p2 200

                                                                                        s4 p4 300

                                                                                        s4 p5 400

                                                                                        93

                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                        SP

                                                                                        s p qtyQty1

                                                                                        s1 p1 300 400

                                                                                        s1 p2 200

                                                                                        s1 p3 400 600

                                                                                        s1 p4 200 300

                                                                                        s1 p5 100

                                                                                        s1 p6 100 200

                                                                                        s2 p2 300 500

                                                                                        s3 p2 400

                                                                                        s4 p1 200 100

                                                                                        s4 p2 200

                                                                                        s4 p4 300

                                                                                        s4 p5 400

                                                                                        qty for partpredicted or

                                                                                        unknown Qty1

                                                                                        100 p5

                                                                                        100 predicted value 200

                                                                                        200 p2

                                                                                        200 predicted value 200

                                                                                        300 p4

                                                                                        300 predicted value 450

                                                                                        400 p2

                                                                                        400 p5

                                                                                        400 predicted value 600

                                                                                        94

                                                                                        Tendance

                                                                                        qty Qty1

                                                                                        100 200

                                                                                        200 300

                                                                                        300 400

                                                                                        400 600

                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                        Graph 3D avec Qty en abscisses

                                                                                        95

                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                        30102008 120 27102008 4

                                                                                        25102008 131 22102008 4

                                                                                        23102008 127 20102008 4

                                                                                        17102008 269 14102008 4

                                                                                        15102008 60 12102008 4

                                                                                        11102008 295 08102008 4

                                                                                        09102008 340 06102008 4

                                                                                        08102008 324 05102008 4

                                                                                        06102008 315 03102008 4

                                                                                        96

                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                        Graphique avec une info-bulle

                                                                                        97

                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                        glissantes

                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                        bull MAVG

                                                                                        bull MSUM

                                                                                        bull MDIFF

                                                                                        bull Voir Teradata + loin

                                                                                        98

                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                        99

                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                        100

                                                                                        Seacuteries financiegraveres

                                                                                        capital taux nval apregraves n ans

                                                                                        taux1val1 apregraves n ans

                                                                                        GainAbs GainRel

                                                                                        100 005 1 105 006 106 1 1

                                                                                        100 005 2 110 006 112 2 2

                                                                                        100 005 3 115 006 119 4 4

                                                                                        100 005 4 121 006 126 5 5

                                                                                        100 005 5 127 006 133 6 6

                                                                                        100 005 6 134 006 141 7 7

                                                                                        100 005 7 140 006 150 10 10

                                                                                        100 005 8 147 006 159 12 12

                                                                                        100 005 9 155 006 168 13 13

                                                                                        100 005 10 162 006 179 17 17

                                                                                        100 005 11 171 006 189 18 18

                                                                                        100 005 12 179 006 201 22 22

                                                                                        100 005 13 188 006 213 25 25

                                                                                        100 005 14 197 006 226 29 29

                                                                                        100 005 15 207 006 239 32 32

                                                                                        100 005 16 218 006 254 36 36

                                                                                        100 005 17 229 006 269 40 40

                                                                                        100 005 18 240 006 285 45 45

                                                                                        100 005 19 252 006 302 50 50

                                                                                        100 005 20 265 006 320 55 55

                                                                                        101

                                                                                        Seacuteries financiegraveres

                                                                                        102

                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                        financiers de la table Produits

                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                        bull En ordre descendant de prix

                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                        bull Plusieurs actionshellip

                                                                                        103

                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                        P prix

                                                                                        p3 200

                                                                                        p1 200

                                                                                        p2 400

                                                                                        p3 200

                                                                                        p4 100

                                                                                        p6 100

                                                                                        p5 300

                                                                                        p8 300

                                                                                        p7 400

                                                                                        p10 200

                                                                                        p12 300

                                                                                        p13 300

                                                                                        104

                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                        ORDER BY 4 desc 8 123

                                                                                        105

                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                        106

                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                        107

                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                        108

                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                        109

                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                        110

                                                                                        GROUPING SETS

                                                                                        On indique explicitement les groupesndash entre ()

                                                                                        le groupe () est constitueacute de toute la table

                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                        HAVING tot-qty gt 100

                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                        111

                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                        112

                                                                                        ROLLUP

                                                                                        Remarquez le laquo null as cityraquo

                                                                                        113

                                                                                        ROLLUP

                                                                                        114

                                                                                        ROLLUP

                                                                                        Et le CUBE

                                                                                        Une solution pour l ambiguiumlteacute

                                                                                        de certains nuls

                                                                                        115

                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                        Wiley (publ)

                                                                                        116

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                        117

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                        118

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        119

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        120

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        121

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        122

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                        123

                                                                                        Sous-Tables Parameacutetreacutees

                                                                                        Exeacutecution autonome

                                                                                        124

                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                        hellip

                                                                                        125

                                                                                        Liste de Choix Multibase

                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                        126

                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                        Tregraves bonne question agrave Microsoft

                                                                                        148

                                                                                        FIN

                                                                                        149

                                                                                        • SQL Avanceacute 2010
                                                                                        • Quoi amp Pourquoi
                                                                                        • Slide 3
                                                                                        • Synonymes
                                                                                        • Noms dattributs
                                                                                        • Slide 6
                                                                                        • Slide 7
                                                                                        • Slide 8
                                                                                        • Insertion dans une Vue
                                                                                        • Insertion dans une Vue (2)
                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                        • Suppression dans une Vue MsAccess
                                                                                        • MsAccess Leacutegendes
                                                                                        • Expressions de valeur
                                                                                        • Expressions de valeur (2)
                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                        • UNION et Noms Drsquoattributs
                                                                                        • UNION et ORDER BY
                                                                                        • ORDER BY et expressions de valeur
                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                        • Preacutedicat TOP
                                                                                        • Preacutedicat TOP (2)
                                                                                        • Clause BETWEEN
                                                                                        • Limitations de NOT
                                                                                        • ANY et ALL
                                                                                        • Injection SQL
                                                                                        • Injection SQL (2)
                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                        • Tabulations Croiseacutees
                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                        • Tabulations Croiseacutees (2)
                                                                                        • Tabulations Croiseacutees (3)
                                                                                        • Tabulations Croiseacutees (4)
                                                                                        • Tabulations Croiseacutees (5)
                                                                                        • XOR
                                                                                        • IMP
                                                                                        • Sous-requecirctes
                                                                                        • Sous-requecirctes (2)
                                                                                        • Sous-requecirctes (3)
                                                                                        • Sous-requecirctes (4)
                                                                                        • Sous-requecirctes (5)
                                                                                        • Sous-requecirctes (6)
                                                                                        • Sous-requecirctes (7)
                                                                                        • Application aux Probabiliteacutes
                                                                                        • Clause FROM imbriqueacutee
                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                        • Valeurs nulles
                                                                                        • Valeurs nulles (2)
                                                                                        • Valeurs nulles (3)
                                                                                        • Valeurs nulles (4)
                                                                                        • Fonctions Scalaires DateTemps
                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                        • Fonction Scalaire RND
                                                                                        • Fonction Scalaire RND (2)
                                                                                        • Fonctions Financiegraveres
                                                                                        • Fonctions Financiegraveres (2)
                                                                                        • Fonction DDB
                                                                                        • Fonction DDB (2)
                                                                                        • Fonction PMT
                                                                                        • Fonction PMT (2)
                                                                                        • Placement agrave taux variable
                                                                                        • GROUP BY
                                                                                        • LIST Function
                                                                                        • LIST Function (2)
                                                                                        • GROUP BY avec WHERE
                                                                                        • GROUP BY (2)
                                                                                        • GROUP BY avec HAVING
                                                                                        • T-GROUP BY
                                                                                        • T-GROUP BY (2)
                                                                                        • T-GROUP BY (3)
                                                                                        • T-GROUP BY (4)
                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                        • Rangs Denses (Dense Ranking)
                                                                                        • Rangs Denses Graphique MsAccess
                                                                                        • Distribution
                                                                                        • Reacutesultat
                                                                                        • Distribution Cumulative
                                                                                        • Reacutesultat (2)
                                                                                        • Cateacutegorisation
                                                                                        • Cateacutegorisation (2)
                                                                                        • Cateacutegorisation (3)
                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                        • Tendance
                                                                                        • Moyenne Glissante
                                                                                        • Moyenne Glissante (2)
                                                                                        • Moyenne Glissante (3)
                                                                                        • Seacuteries financiegraveres
                                                                                        • Seacuteries financiegraveres (2)
                                                                                        • Seacuteries financiegraveres (3)
                                                                                        • Seacuteries financiegraveres (4)
                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                        • GROUPING SETS
                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                        • Slide 112
                                                                                        • Slide 113
                                                                                        • Slide 114
                                                                                        • Autres Opeacuterations Utiles
                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                        • Liste de Choix Multibase
                                                                                        • Liste de Choix Multibase (2)
                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                        • FIN
                                                                                        • Slide 149

                                                                                          45

                                                                                          Sous-requecirctesbull En Mode Graphique

                                                                                          s p qtyTotalQty

                                                                                          Fraction

                                                                                          s1 p1 300 1300 0231

                                                                                          s1 p6 100 1300 0077

                                                                                          s1 p5 100 1300 0077

                                                                                          s1 p4 200 1300 0154

                                                                                          s1 p3 400 1300 0308

                                                                                          s1 p2 200 1300 0154

                                                                                          s2 p2 300 300 1

                                                                                          s3 p2 400 400 1

                                                                                          s4 p5 400 1100 0364

                                                                                          s4 p4 300 1100 0273

                                                                                          s4 p2 200 1100 0182

                                                                                          46

                                                                                          Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                          SELECT (select count(qty) from SP

                                                                                          where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                          FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                          probabiliteacute conditionnelle

                                                                                          47

                                                                                          Clause FROM imbriqueacutee

                                                                                          Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                          Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                          Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                          Agrave essayer

                                                                                          48

                                                                                          Clause FROM imbriqueacuteePossibiliteacutes

                                                                                          ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                          ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                          MsAccess

                                                                                          ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                          Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                          49

                                                                                          Clause FROM imbriqueacutee

                                                                                          SELECT sum(weight) AS [poids-total]

                                                                                          FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                          UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                          50

                                                                                          Clause FROM imbriqueacutee

                                                                                          select avg(moy1) as [moyenne-des-moyennes]

                                                                                          FROM

                                                                                          (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                          UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                          51

                                                                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                          select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                          52

                                                                                          Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                          totaux partiels et total geacuteneacuteral

                                                                                          total_Id TotalQty

                                                                                          s1 1300

                                                                                          s2 300

                                                                                          s3 400

                                                                                          s4 400

                                                                                          total Geacuteneacuteral

                                                                                          2400

                                                                                          53

                                                                                          Valeurs nulles

                                                                                          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                          Non WHERE HAVING GROUP BY (rel 1)

                                                                                          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                          MsAccess Oui DISTINCT Autres clauses

                                                                                          54

                                                                                          Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                          1 x gt y est vrai ou faux

                                                                                          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                          SELECT FROM S WHERE CITY =Paris

                                                                                          UNION

                                                                                          SELECT FROM S WHERE NOT CITY = Paris

                                                                                          est toujours pourquoi faire simpleSELECT FROM S

                                                                                          si on peut faire compliqueacute

                                                                                          55

                                                                                          Valeurs nullesValeurs nulles

                                                                                          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                          56

                                                                                          Valeurs nulles

                                                                                          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                          LOG (nul) -gt Error A voir cas par cas

                                                                                          57

                                                                                          Fonctions Scalaires DateTemps

                                                                                          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                          58

                                                                                          Fonctions Scalaires DateTemps

                                                                                          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                          weekday(day(now())-1) AS [day]FROM S

                                                                                          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                          59

                                                                                          Fonctions Scalaires DateTemps

                                                                                          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                          Interval Explanation

                                                                                          Yyyy Year

                                                                                          q Quarter

                                                                                          m Month

                                                                                          y Day of year

                                                                                          d Day

                                                                                          w Weekday

                                                                                          ww Week

                                                                                          h Hour

                                                                                          n Minute

                                                                                          s Second

                                                                                          60

                                                                                          Fonctions Scalaires DateTemps

                                                                                          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                          Test DateDiff

                                                                                          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                          61

                                                                                          Fonctions Scalaires DateTemps

                                                                                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                          Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                          62

                                                                                          Fonction Scalaire RND

                                                                                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                                          echantillon s rank

                                                                                          s1 502628087997437E-02

                                                                                          s4 0518015921115875

                                                                                          s3 075702953338623

                                                                                          63

                                                                                          Fonction Scalaire RND

                                                                                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                          Votre commentaire ici

                                                                                          64

                                                                                          Fonctions Financiegraveres

                                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                          65

                                                                                          Fonctions Financiegraveres

                                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                          66

                                                                                          Fonction DDB

                                                                                          insert into DDB (cost salvage life factor amortiss period)

                                                                                          select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                          DDB(cost salvage life period factor) as amortiss period

                                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                          67

                                                                                          Fonction DDB

                                                                                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                          68

                                                                                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                          nombres neacutegatifs

                                                                                          Fonction PMT

                                                                                          69

                                                                                          Fonction PMT

                                                                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                          Fonction PMT calcul dannuiteacute demprunt

                                                                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                          preacutesentevaleur_payeacutee surprime

                                                                                          -16049 005 20 200000 -320980 -120980

                                                                                          70

                                                                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                          Et les nuls que log ne supporte pas

                                                                                          Anneacutee relative

                                                                                          Taux

                                                                                          1 4

                                                                                          2 4

                                                                                          3 3

                                                                                          4 5

                                                                                          5 5

                                                                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                          71

                                                                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                          est eacutequivalente agrave

                                                                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                          WHERE XP = SPP) FROM SP

                                                                                          Testez

                                                                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                          72

                                                                                          LIST Function La requecircte

                                                                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                          Comme les tabulations croiseacutees

                                                                                          ndash Mais en + simple

                                                                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                          ndash En mono attribut (2004)

                                                                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                          sous-formulaires

                                                                                          73

                                                                                          LIST Function

                                                                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                          74

                                                                                          GROUP BY avec WHERE

                                                                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                          75

                                                                                          GROUP BY

                                                                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                          Pourquoi

                                                                                          76

                                                                                          GROUP BY avec HAVING

                                                                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                          77

                                                                                          T-GROUP BY Proposeacute pour SQL

                                                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                          Le rocircle de -join par rapport agrave equi-join

                                                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                          78

                                                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                          FROM SP Vrai ou Faux

                                                                                          79

                                                                                          T-GROUP BY

                                                                                          Reacutesultat

                                                                                          part avg_qty_other_parts part_avg_qty

                                                                                          p1 250 300

                                                                                          p2 262 250

                                                                                          p3 245 400

                                                                                          p4 260 250

                                                                                          p5 260 250

                                                                                          p6 272 100

                                                                                          80

                                                                                          T-GROUP BY

                                                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                          81

                                                                                          Rangs Non-Denses(Non Dense Ranking)

                                                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                          s p qtyND-rank

                                                                                          s4 p5 400 1

                                                                                          s3 p2 400 1

                                                                                          s1 p3 400 1

                                                                                          s4 p4 300 4

                                                                                          s2 p2 300 4

                                                                                          s1 p1 300 4

                                                                                          s4 p2 200 7

                                                                                          s1 p4 200 7

                                                                                          s1 p2 200 7

                                                                                          s4 p1 200 7

                                                                                          s1 p6 100 11

                                                                                          s1 p5 100 11

                                                                                          82

                                                                                          Rangs Non-Denses(Graphique MsAccess)

                                                                                          s p qty ND-rank

                                                                                          s4 p5 400 1

                                                                                          s3 p2 400 1

                                                                                          s1 p3 400 1

                                                                                          s4 p4 300 4

                                                                                          s2 p2 300 4

                                                                                          s1 p1 300 4

                                                                                          s4 p2 200 7

                                                                                          s1 p4 200 7

                                                                                          s1 p2 200 7

                                                                                          s4 p1 200 7

                                                                                          s1 p6 100 11

                                                                                          s1 p5 100 11

                                                                                          83

                                                                                          Rangs Denses(Dense Ranking)

                                                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                          s p qtyD-rank

                                                                                          s1 p3 400 1

                                                                                          s3 p2 400 1

                                                                                          s4 p5 400 1

                                                                                          s1 p1 300 2

                                                                                          s2 p2 300 2

                                                                                          s4 p4 300 2

                                                                                          s1 p4 200 3

                                                                                          s1 p2 200 3

                                                                                          s4 p2 200 3

                                                                                          s4 p1 200 3

                                                                                          s1 p6 100 4

                                                                                          s1 p5 100 4

                                                                                          84

                                                                                          Rangs DensesGraphique MsAccess

                                                                                          s p qty D-rank

                                                                                          s1 p3 400 1

                                                                                          s3 p2 400 1

                                                                                          s4 p5 400 1

                                                                                          s1 p1 300 2

                                                                                          s2 p2 300 2

                                                                                          s4 p4 300 2

                                                                                          s1 p4 200 3

                                                                                          s1 p2 200 3

                                                                                          s4 p2 200 3

                                                                                          s4 p1 200 3

                                                                                          s1 p6 100 4

                                                                                          s1 p5 100 4

                                                                                          85

                                                                                          Distribution

                                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                          86

                                                                                          Reacutesultat

                                                                                          s Distribution

                                                                                          s1 0419

                                                                                          s2 0097

                                                                                          s3 0129

                                                                                          s4 0355

                                                                                          87

                                                                                          Distribution Cumulative

                                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                          FROM SP

                                                                                          ORDER BY SP[s]

                                                                                          88

                                                                                          Reacutesultat

                                                                                          sDistribution Cumuleacutee

                                                                                          s1 0419

                                                                                          s2 0516

                                                                                          s3 0645

                                                                                          s4 1

                                                                                          89

                                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                                          90

                                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                          FROM S

                                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                          s1 Smith Paris good good

                                                                                          s2 Jones 100 london good VGood

                                                                                          s3 Blake 30 Paris good good

                                                                                          s4 Clark 10 london OK OK

                                                                                          s5 Adams 30 Athens good good

                                                                                          bull Notez le traitement du null

                                                                                          91

                                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                                          FROM P where weight gt 13

                                                                                          union

                                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                          UNION

                                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                                          ORDER BY warning DESC weight DESC

                                                                                          pname weight Warning

                                                                                          cam 19 Very Heavy

                                                                                          cog 19 Very Heavy

                                                                                          bolt 17 Very Heavy

                                                                                          nut 14 Very Heavy

                                                                                          screw 14 Very Heavy

                                                                                          nut 14 Quite Heavy

                                                                                          screw 14 Quite Heavy

                                                                                          screw 12 Quite Heavy

                                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                          92

                                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                                          On considegravere AVG(Qty1) pour Qty

                                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                          SP

                                                                                          s p qtyQty1

                                                                                          s1 p1 300 400

                                                                                          s1 p2 200

                                                                                          s1 p3 400 600

                                                                                          s1 p4 200 300

                                                                                          s1 p5 100

                                                                                          s1 p6 100 200

                                                                                          s2 p2 300 500

                                                                                          s3 p2 400

                                                                                          s4 p1 200 100

                                                                                          s4 p2 200

                                                                                          s4 p4 300

                                                                                          s4 p5 400

                                                                                          93

                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                          SP

                                                                                          s p qtyQty1

                                                                                          s1 p1 300 400

                                                                                          s1 p2 200

                                                                                          s1 p3 400 600

                                                                                          s1 p4 200 300

                                                                                          s1 p5 100

                                                                                          s1 p6 100 200

                                                                                          s2 p2 300 500

                                                                                          s3 p2 400

                                                                                          s4 p1 200 100

                                                                                          s4 p2 200

                                                                                          s4 p4 300

                                                                                          s4 p5 400

                                                                                          qty for partpredicted or

                                                                                          unknown Qty1

                                                                                          100 p5

                                                                                          100 predicted value 200

                                                                                          200 p2

                                                                                          200 predicted value 200

                                                                                          300 p4

                                                                                          300 predicted value 450

                                                                                          400 p2

                                                                                          400 p5

                                                                                          400 predicted value 600

                                                                                          94

                                                                                          Tendance

                                                                                          qty Qty1

                                                                                          100 200

                                                                                          200 300

                                                                                          300 400

                                                                                          400 600

                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                          Graph 3D avec Qty en abscisses

                                                                                          95

                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                          30102008 120 27102008 4

                                                                                          25102008 131 22102008 4

                                                                                          23102008 127 20102008 4

                                                                                          17102008 269 14102008 4

                                                                                          15102008 60 12102008 4

                                                                                          11102008 295 08102008 4

                                                                                          09102008 340 06102008 4

                                                                                          08102008 324 05102008 4

                                                                                          06102008 315 03102008 4

                                                                                          96

                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                          Graphique avec une info-bulle

                                                                                          97

                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                          glissantes

                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                          bull MAVG

                                                                                          bull MSUM

                                                                                          bull MDIFF

                                                                                          bull Voir Teradata + loin

                                                                                          98

                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                          99

                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                          100

                                                                                          Seacuteries financiegraveres

                                                                                          capital taux nval apregraves n ans

                                                                                          taux1val1 apregraves n ans

                                                                                          GainAbs GainRel

                                                                                          100 005 1 105 006 106 1 1

                                                                                          100 005 2 110 006 112 2 2

                                                                                          100 005 3 115 006 119 4 4

                                                                                          100 005 4 121 006 126 5 5

                                                                                          100 005 5 127 006 133 6 6

                                                                                          100 005 6 134 006 141 7 7

                                                                                          100 005 7 140 006 150 10 10

                                                                                          100 005 8 147 006 159 12 12

                                                                                          100 005 9 155 006 168 13 13

                                                                                          100 005 10 162 006 179 17 17

                                                                                          100 005 11 171 006 189 18 18

                                                                                          100 005 12 179 006 201 22 22

                                                                                          100 005 13 188 006 213 25 25

                                                                                          100 005 14 197 006 226 29 29

                                                                                          100 005 15 207 006 239 32 32

                                                                                          100 005 16 218 006 254 36 36

                                                                                          100 005 17 229 006 269 40 40

                                                                                          100 005 18 240 006 285 45 45

                                                                                          100 005 19 252 006 302 50 50

                                                                                          100 005 20 265 006 320 55 55

                                                                                          101

                                                                                          Seacuteries financiegraveres

                                                                                          102

                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                          financiers de la table Produits

                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                          bull En ordre descendant de prix

                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                          bull Plusieurs actionshellip

                                                                                          103

                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                          P prix

                                                                                          p3 200

                                                                                          p1 200

                                                                                          p2 400

                                                                                          p3 200

                                                                                          p4 100

                                                                                          p6 100

                                                                                          p5 300

                                                                                          p8 300

                                                                                          p7 400

                                                                                          p10 200

                                                                                          p12 300

                                                                                          p13 300

                                                                                          104

                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                          ORDER BY 4 desc 8 123

                                                                                          105

                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                          106

                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                          107

                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                          108

                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                          109

                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                          110

                                                                                          GROUPING SETS

                                                                                          On indique explicitement les groupesndash entre ()

                                                                                          le groupe () est constitueacute de toute la table

                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                          HAVING tot-qty gt 100

                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                          111

                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                          112

                                                                                          ROLLUP

                                                                                          Remarquez le laquo null as cityraquo

                                                                                          113

                                                                                          ROLLUP

                                                                                          114

                                                                                          ROLLUP

                                                                                          Et le CUBE

                                                                                          Une solution pour l ambiguiumlteacute

                                                                                          de certains nuls

                                                                                          115

                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                          Wiley (publ)

                                                                                          116

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                          117

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                          118

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          119

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          120

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          121

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          122

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                          123

                                                                                          Sous-Tables Parameacutetreacutees

                                                                                          Exeacutecution autonome

                                                                                          124

                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                          hellip

                                                                                          125

                                                                                          Liste de Choix Multibase

                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                          126

                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                          Tregraves bonne question agrave Microsoft

                                                                                          148

                                                                                          FIN

                                                                                          149

                                                                                          • SQL Avanceacute 2010
                                                                                          • Quoi amp Pourquoi
                                                                                          • Slide 3
                                                                                          • Synonymes
                                                                                          • Noms dattributs
                                                                                          • Slide 6
                                                                                          • Slide 7
                                                                                          • Slide 8
                                                                                          • Insertion dans une Vue
                                                                                          • Insertion dans une Vue (2)
                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                          • Suppression dans une Vue MsAccess
                                                                                          • MsAccess Leacutegendes
                                                                                          • Expressions de valeur
                                                                                          • Expressions de valeur (2)
                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                          • UNION et Noms Drsquoattributs
                                                                                          • UNION et ORDER BY
                                                                                          • ORDER BY et expressions de valeur
                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                          • Preacutedicat TOP
                                                                                          • Preacutedicat TOP (2)
                                                                                          • Clause BETWEEN
                                                                                          • Limitations de NOT
                                                                                          • ANY et ALL
                                                                                          • Injection SQL
                                                                                          • Injection SQL (2)
                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                          • Tabulations Croiseacutees
                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                          • Tabulations Croiseacutees (2)
                                                                                          • Tabulations Croiseacutees (3)
                                                                                          • Tabulations Croiseacutees (4)
                                                                                          • Tabulations Croiseacutees (5)
                                                                                          • XOR
                                                                                          • IMP
                                                                                          • Sous-requecirctes
                                                                                          • Sous-requecirctes (2)
                                                                                          • Sous-requecirctes (3)
                                                                                          • Sous-requecirctes (4)
                                                                                          • Sous-requecirctes (5)
                                                                                          • Sous-requecirctes (6)
                                                                                          • Sous-requecirctes (7)
                                                                                          • Application aux Probabiliteacutes
                                                                                          • Clause FROM imbriqueacutee
                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                          • Valeurs nulles
                                                                                          • Valeurs nulles (2)
                                                                                          • Valeurs nulles (3)
                                                                                          • Valeurs nulles (4)
                                                                                          • Fonctions Scalaires DateTemps
                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                          • Fonction Scalaire RND
                                                                                          • Fonction Scalaire RND (2)
                                                                                          • Fonctions Financiegraveres
                                                                                          • Fonctions Financiegraveres (2)
                                                                                          • Fonction DDB
                                                                                          • Fonction DDB (2)
                                                                                          • Fonction PMT
                                                                                          • Fonction PMT (2)
                                                                                          • Placement agrave taux variable
                                                                                          • GROUP BY
                                                                                          • LIST Function
                                                                                          • LIST Function (2)
                                                                                          • GROUP BY avec WHERE
                                                                                          • GROUP BY (2)
                                                                                          • GROUP BY avec HAVING
                                                                                          • T-GROUP BY
                                                                                          • T-GROUP BY (2)
                                                                                          • T-GROUP BY (3)
                                                                                          • T-GROUP BY (4)
                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                          • Rangs Denses (Dense Ranking)
                                                                                          • Rangs Denses Graphique MsAccess
                                                                                          • Distribution
                                                                                          • Reacutesultat
                                                                                          • Distribution Cumulative
                                                                                          • Reacutesultat (2)
                                                                                          • Cateacutegorisation
                                                                                          • Cateacutegorisation (2)
                                                                                          • Cateacutegorisation (3)
                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                          • Tendance
                                                                                          • Moyenne Glissante
                                                                                          • Moyenne Glissante (2)
                                                                                          • Moyenne Glissante (3)
                                                                                          • Seacuteries financiegraveres
                                                                                          • Seacuteries financiegraveres (2)
                                                                                          • Seacuteries financiegraveres (3)
                                                                                          • Seacuteries financiegraveres (4)
                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                          • GROUPING SETS
                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                          • Slide 112
                                                                                          • Slide 113
                                                                                          • Slide 114
                                                                                          • Autres Opeacuterations Utiles
                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                          • Liste de Choix Multibase
                                                                                          • Liste de Choix Multibase (2)
                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                          • FIN
                                                                                          • Slide 149

                                                                                            46

                                                                                            Application aux Probabiliteacutes Que ce que lrsquoon calcule ici

                                                                                            SELECT (select count(qty) from SP

                                                                                            where qty gt= [seuil svp ]) count() as reacutesultat

                                                                                            FROM SP Comment traite-on les nuls ici Comment modifier la requecircte pour calculer une

                                                                                            probabiliteacute conditionnelle

                                                                                            47

                                                                                            Clause FROM imbriqueacutee

                                                                                            Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                            Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                            Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                            Agrave essayer

                                                                                            48

                                                                                            Clause FROM imbriqueacuteePossibiliteacutes

                                                                                            ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                            ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                            MsAccess

                                                                                            ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                            Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                            49

                                                                                            Clause FROM imbriqueacutee

                                                                                            SELECT sum(weight) AS [poids-total]

                                                                                            FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                            UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                            50

                                                                                            Clause FROM imbriqueacutee

                                                                                            select avg(moy1) as [moyenne-des-moyennes]

                                                                                            FROM

                                                                                            (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                            UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                            51

                                                                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                            select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                            52

                                                                                            Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                            totaux partiels et total geacuteneacuteral

                                                                                            total_Id TotalQty

                                                                                            s1 1300

                                                                                            s2 300

                                                                                            s3 400

                                                                                            s4 400

                                                                                            total Geacuteneacuteral

                                                                                            2400

                                                                                            53

                                                                                            Valeurs nulles

                                                                                            Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                            En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                            DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                            Non WHERE HAVING GROUP BY (rel 1)

                                                                                            Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                            MsAccess Oui DISTINCT Autres clauses

                                                                                            54

                                                                                            Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                            1 x gt y est vrai ou faux

                                                                                            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                            SELECT FROM S WHERE CITY =Paris

                                                                                            UNION

                                                                                            SELECT FROM S WHERE NOT CITY = Paris

                                                                                            est toujours pourquoi faire simpleSELECT FROM S

                                                                                            si on peut faire compliqueacute

                                                                                            55

                                                                                            Valeurs nullesValeurs nulles

                                                                                            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                            56

                                                                                            Valeurs nulles

                                                                                            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                            LOG (nul) -gt Error A voir cas par cas

                                                                                            57

                                                                                            Fonctions Scalaires DateTemps

                                                                                            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                            58

                                                                                            Fonctions Scalaires DateTemps

                                                                                            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                            weekday(day(now())-1) AS [day]FROM S

                                                                                            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                            59

                                                                                            Fonctions Scalaires DateTemps

                                                                                            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                            Interval Explanation

                                                                                            Yyyy Year

                                                                                            q Quarter

                                                                                            m Month

                                                                                            y Day of year

                                                                                            d Day

                                                                                            w Weekday

                                                                                            ww Week

                                                                                            h Hour

                                                                                            n Minute

                                                                                            s Second

                                                                                            60

                                                                                            Fonctions Scalaires DateTemps

                                                                                            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                            Test DateDiff

                                                                                            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                            61

                                                                                            Fonctions Scalaires DateTemps

                                                                                            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                            Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                            62

                                                                                            Fonction Scalaire RND

                                                                                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                                            echantillon s rank

                                                                                            s1 502628087997437E-02

                                                                                            s4 0518015921115875

                                                                                            s3 075702953338623

                                                                                            63

                                                                                            Fonction Scalaire RND

                                                                                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                            Votre commentaire ici

                                                                                            64

                                                                                            Fonctions Financiegraveres

                                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                            65

                                                                                            Fonctions Financiegraveres

                                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                            66

                                                                                            Fonction DDB

                                                                                            insert into DDB (cost salvage life factor amortiss period)

                                                                                            select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                            DDB(cost salvage life period factor) as amortiss period

                                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                            67

                                                                                            Fonction DDB

                                                                                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                            68

                                                                                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                            nombres neacutegatifs

                                                                                            Fonction PMT

                                                                                            69

                                                                                            Fonction PMT

                                                                                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                            Fonction PMT calcul dannuiteacute demprunt

                                                                                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                            preacutesentevaleur_payeacutee surprime

                                                                                            -16049 005 20 200000 -320980 -120980

                                                                                            70

                                                                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                            Et les nuls que log ne supporte pas

                                                                                            Anneacutee relative

                                                                                            Taux

                                                                                            1 4

                                                                                            2 4

                                                                                            3 3

                                                                                            4 5

                                                                                            5 5

                                                                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                            71

                                                                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                            est eacutequivalente agrave

                                                                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                            WHERE XP = SPP) FROM SP

                                                                                            Testez

                                                                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                            72

                                                                                            LIST Function La requecircte

                                                                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                            Comme les tabulations croiseacutees

                                                                                            ndash Mais en + simple

                                                                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                            ndash En mono attribut (2004)

                                                                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                            sous-formulaires

                                                                                            73

                                                                                            LIST Function

                                                                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                            74

                                                                                            GROUP BY avec WHERE

                                                                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                            75

                                                                                            GROUP BY

                                                                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                            Pourquoi

                                                                                            76

                                                                                            GROUP BY avec HAVING

                                                                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                            77

                                                                                            T-GROUP BY Proposeacute pour SQL

                                                                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                            Le rocircle de -join par rapport agrave equi-join

                                                                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                            INT(AVG(QTY)) AS QTY2FROM SP

                                                                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                            78

                                                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                            FROM SP Vrai ou Faux

                                                                                            79

                                                                                            T-GROUP BY

                                                                                            Reacutesultat

                                                                                            part avg_qty_other_parts part_avg_qty

                                                                                            p1 250 300

                                                                                            p2 262 250

                                                                                            p3 245 400

                                                                                            p4 260 250

                                                                                            p5 260 250

                                                                                            p6 272 100

                                                                                            80

                                                                                            T-GROUP BY

                                                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                            81

                                                                                            Rangs Non-Denses(Non Dense Ranking)

                                                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                            s p qtyND-rank

                                                                                            s4 p5 400 1

                                                                                            s3 p2 400 1

                                                                                            s1 p3 400 1

                                                                                            s4 p4 300 4

                                                                                            s2 p2 300 4

                                                                                            s1 p1 300 4

                                                                                            s4 p2 200 7

                                                                                            s1 p4 200 7

                                                                                            s1 p2 200 7

                                                                                            s4 p1 200 7

                                                                                            s1 p6 100 11

                                                                                            s1 p5 100 11

                                                                                            82

                                                                                            Rangs Non-Denses(Graphique MsAccess)

                                                                                            s p qty ND-rank

                                                                                            s4 p5 400 1

                                                                                            s3 p2 400 1

                                                                                            s1 p3 400 1

                                                                                            s4 p4 300 4

                                                                                            s2 p2 300 4

                                                                                            s1 p1 300 4

                                                                                            s4 p2 200 7

                                                                                            s1 p4 200 7

                                                                                            s1 p2 200 7

                                                                                            s4 p1 200 7

                                                                                            s1 p6 100 11

                                                                                            s1 p5 100 11

                                                                                            83

                                                                                            Rangs Denses(Dense Ranking)

                                                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                            s p qtyD-rank

                                                                                            s1 p3 400 1

                                                                                            s3 p2 400 1

                                                                                            s4 p5 400 1

                                                                                            s1 p1 300 2

                                                                                            s2 p2 300 2

                                                                                            s4 p4 300 2

                                                                                            s1 p4 200 3

                                                                                            s1 p2 200 3

                                                                                            s4 p2 200 3

                                                                                            s4 p1 200 3

                                                                                            s1 p6 100 4

                                                                                            s1 p5 100 4

                                                                                            84

                                                                                            Rangs DensesGraphique MsAccess

                                                                                            s p qty D-rank

                                                                                            s1 p3 400 1

                                                                                            s3 p2 400 1

                                                                                            s4 p5 400 1

                                                                                            s1 p1 300 2

                                                                                            s2 p2 300 2

                                                                                            s4 p4 300 2

                                                                                            s1 p4 200 3

                                                                                            s1 p2 200 3

                                                                                            s4 p2 200 3

                                                                                            s4 p1 200 3

                                                                                            s1 p6 100 4

                                                                                            s1 p5 100 4

                                                                                            85

                                                                                            Distribution

                                                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                            86

                                                                                            Reacutesultat

                                                                                            s Distribution

                                                                                            s1 0419

                                                                                            s2 0097

                                                                                            s3 0129

                                                                                            s4 0355

                                                                                            87

                                                                                            Distribution Cumulative

                                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                            FROM SP

                                                                                            ORDER BY SP[s]

                                                                                            88

                                                                                            Reacutesultat

                                                                                            sDistribution Cumuleacutee

                                                                                            s1 0419

                                                                                            s2 0516

                                                                                            s3 0645

                                                                                            s4 1

                                                                                            89

                                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                                            90

                                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                            FROM S

                                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                            s1 Smith Paris good good

                                                                                            s2 Jones 100 london good VGood

                                                                                            s3 Blake 30 Paris good good

                                                                                            s4 Clark 10 london OK OK

                                                                                            s5 Adams 30 Athens good good

                                                                                            bull Notez le traitement du null

                                                                                            91

                                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                                            FROM P where weight gt 13

                                                                                            union

                                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                            UNION

                                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                                            ORDER BY warning DESC weight DESC

                                                                                            pname weight Warning

                                                                                            cam 19 Very Heavy

                                                                                            cog 19 Very Heavy

                                                                                            bolt 17 Very Heavy

                                                                                            nut 14 Very Heavy

                                                                                            screw 14 Very Heavy

                                                                                            nut 14 Quite Heavy

                                                                                            screw 14 Quite Heavy

                                                                                            screw 12 Quite Heavy

                                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                            92

                                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                                            On considegravere AVG(Qty1) pour Qty

                                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                            SP

                                                                                            s p qtyQty1

                                                                                            s1 p1 300 400

                                                                                            s1 p2 200

                                                                                            s1 p3 400 600

                                                                                            s1 p4 200 300

                                                                                            s1 p5 100

                                                                                            s1 p6 100 200

                                                                                            s2 p2 300 500

                                                                                            s3 p2 400

                                                                                            s4 p1 200 100

                                                                                            s4 p2 200

                                                                                            s4 p4 300

                                                                                            s4 p5 400

                                                                                            93

                                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                            SP

                                                                                            s p qtyQty1

                                                                                            s1 p1 300 400

                                                                                            s1 p2 200

                                                                                            s1 p3 400 600

                                                                                            s1 p4 200 300

                                                                                            s1 p5 100

                                                                                            s1 p6 100 200

                                                                                            s2 p2 300 500

                                                                                            s3 p2 400

                                                                                            s4 p1 200 100

                                                                                            s4 p2 200

                                                                                            s4 p4 300

                                                                                            s4 p5 400

                                                                                            qty for partpredicted or

                                                                                            unknown Qty1

                                                                                            100 p5

                                                                                            100 predicted value 200

                                                                                            200 p2

                                                                                            200 predicted value 200

                                                                                            300 p4

                                                                                            300 predicted value 450

                                                                                            400 p2

                                                                                            400 p5

                                                                                            400 predicted value 600

                                                                                            94

                                                                                            Tendance

                                                                                            qty Qty1

                                                                                            100 200

                                                                                            200 300

                                                                                            300 400

                                                                                            400 600

                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                            Graph 3D avec Qty en abscisses

                                                                                            95

                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                            30102008 120 27102008 4

                                                                                            25102008 131 22102008 4

                                                                                            23102008 127 20102008 4

                                                                                            17102008 269 14102008 4

                                                                                            15102008 60 12102008 4

                                                                                            11102008 295 08102008 4

                                                                                            09102008 340 06102008 4

                                                                                            08102008 324 05102008 4

                                                                                            06102008 315 03102008 4

                                                                                            96

                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                            Graphique avec une info-bulle

                                                                                            97

                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                            glissantes

                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                            bull MAVG

                                                                                            bull MSUM

                                                                                            bull MDIFF

                                                                                            bull Voir Teradata + loin

                                                                                            98

                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                            99

                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                            100

                                                                                            Seacuteries financiegraveres

                                                                                            capital taux nval apregraves n ans

                                                                                            taux1val1 apregraves n ans

                                                                                            GainAbs GainRel

                                                                                            100 005 1 105 006 106 1 1

                                                                                            100 005 2 110 006 112 2 2

                                                                                            100 005 3 115 006 119 4 4

                                                                                            100 005 4 121 006 126 5 5

                                                                                            100 005 5 127 006 133 6 6

                                                                                            100 005 6 134 006 141 7 7

                                                                                            100 005 7 140 006 150 10 10

                                                                                            100 005 8 147 006 159 12 12

                                                                                            100 005 9 155 006 168 13 13

                                                                                            100 005 10 162 006 179 17 17

                                                                                            100 005 11 171 006 189 18 18

                                                                                            100 005 12 179 006 201 22 22

                                                                                            100 005 13 188 006 213 25 25

                                                                                            100 005 14 197 006 226 29 29

                                                                                            100 005 15 207 006 239 32 32

                                                                                            100 005 16 218 006 254 36 36

                                                                                            100 005 17 229 006 269 40 40

                                                                                            100 005 18 240 006 285 45 45

                                                                                            100 005 19 252 006 302 50 50

                                                                                            100 005 20 265 006 320 55 55

                                                                                            101

                                                                                            Seacuteries financiegraveres

                                                                                            102

                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                            financiers de la table Produits

                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                            bull En ordre descendant de prix

                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                            bull Plusieurs actionshellip

                                                                                            103

                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                            P prix

                                                                                            p3 200

                                                                                            p1 200

                                                                                            p2 400

                                                                                            p3 200

                                                                                            p4 100

                                                                                            p6 100

                                                                                            p5 300

                                                                                            p8 300

                                                                                            p7 400

                                                                                            p10 200

                                                                                            p12 300

                                                                                            p13 300

                                                                                            104

                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                            ORDER BY 4 desc 8 123

                                                                                            105

                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                            106

                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                            107

                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                            108

                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                            109

                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                            110

                                                                                            GROUPING SETS

                                                                                            On indique explicitement les groupesndash entre ()

                                                                                            le groupe () est constitueacute de toute la table

                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                            HAVING tot-qty gt 100

                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                            111

                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                            112

                                                                                            ROLLUP

                                                                                            Remarquez le laquo null as cityraquo

                                                                                            113

                                                                                            ROLLUP

                                                                                            114

                                                                                            ROLLUP

                                                                                            Et le CUBE

                                                                                            Une solution pour l ambiguiumlteacute

                                                                                            de certains nuls

                                                                                            115

                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                            Wiley (publ)

                                                                                            116

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                            117

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                            118

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            119

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            120

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            121

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            122

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                            123

                                                                                            Sous-Tables Parameacutetreacutees

                                                                                            Exeacutecution autonome

                                                                                            124

                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                            hellip

                                                                                            125

                                                                                            Liste de Choix Multibase

                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                            126

                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                            Tregraves bonne question agrave Microsoft

                                                                                            148

                                                                                            FIN

                                                                                            149

                                                                                            • SQL Avanceacute 2010
                                                                                            • Quoi amp Pourquoi
                                                                                            • Slide 3
                                                                                            • Synonymes
                                                                                            • Noms dattributs
                                                                                            • Slide 6
                                                                                            • Slide 7
                                                                                            • Slide 8
                                                                                            • Insertion dans une Vue
                                                                                            • Insertion dans une Vue (2)
                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                            • Suppression dans une Vue MsAccess
                                                                                            • MsAccess Leacutegendes
                                                                                            • Expressions de valeur
                                                                                            • Expressions de valeur (2)
                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                            • UNION et Noms Drsquoattributs
                                                                                            • UNION et ORDER BY
                                                                                            • ORDER BY et expressions de valeur
                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                            • Preacutedicat TOP
                                                                                            • Preacutedicat TOP (2)
                                                                                            • Clause BETWEEN
                                                                                            • Limitations de NOT
                                                                                            • ANY et ALL
                                                                                            • Injection SQL
                                                                                            • Injection SQL (2)
                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                            • Tabulations Croiseacutees
                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                            • Tabulations Croiseacutees (2)
                                                                                            • Tabulations Croiseacutees (3)
                                                                                            • Tabulations Croiseacutees (4)
                                                                                            • Tabulations Croiseacutees (5)
                                                                                            • XOR
                                                                                            • IMP
                                                                                            • Sous-requecirctes
                                                                                            • Sous-requecirctes (2)
                                                                                            • Sous-requecirctes (3)
                                                                                            • Sous-requecirctes (4)
                                                                                            • Sous-requecirctes (5)
                                                                                            • Sous-requecirctes (6)
                                                                                            • Sous-requecirctes (7)
                                                                                            • Application aux Probabiliteacutes
                                                                                            • Clause FROM imbriqueacutee
                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                            • Valeurs nulles
                                                                                            • Valeurs nulles (2)
                                                                                            • Valeurs nulles (3)
                                                                                            • Valeurs nulles (4)
                                                                                            • Fonctions Scalaires DateTemps
                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                            • Fonction Scalaire RND
                                                                                            • Fonction Scalaire RND (2)
                                                                                            • Fonctions Financiegraveres
                                                                                            • Fonctions Financiegraveres (2)
                                                                                            • Fonction DDB
                                                                                            • Fonction DDB (2)
                                                                                            • Fonction PMT
                                                                                            • Fonction PMT (2)
                                                                                            • Placement agrave taux variable
                                                                                            • GROUP BY
                                                                                            • LIST Function
                                                                                            • LIST Function (2)
                                                                                            • GROUP BY avec WHERE
                                                                                            • GROUP BY (2)
                                                                                            • GROUP BY avec HAVING
                                                                                            • T-GROUP BY
                                                                                            • T-GROUP BY (2)
                                                                                            • T-GROUP BY (3)
                                                                                            • T-GROUP BY (4)
                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                            • Rangs Denses (Dense Ranking)
                                                                                            • Rangs Denses Graphique MsAccess
                                                                                            • Distribution
                                                                                            • Reacutesultat
                                                                                            • Distribution Cumulative
                                                                                            • Reacutesultat (2)
                                                                                            • Cateacutegorisation
                                                                                            • Cateacutegorisation (2)
                                                                                            • Cateacutegorisation (3)
                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                            • Tendance
                                                                                            • Moyenne Glissante
                                                                                            • Moyenne Glissante (2)
                                                                                            • Moyenne Glissante (3)
                                                                                            • Seacuteries financiegraveres
                                                                                            • Seacuteries financiegraveres (2)
                                                                                            • Seacuteries financiegraveres (3)
                                                                                            • Seacuteries financiegraveres (4)
                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                            • GROUPING SETS
                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                            • Slide 112
                                                                                            • Slide 113
                                                                                            • Slide 114
                                                                                            • Autres Opeacuterations Utiles
                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                            • Liste de Choix Multibase
                                                                                            • Liste de Choix Multibase (2)
                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                            • FIN
                                                                                            • Slide 149

                                                                                              47

                                                                                              Clause FROM imbriqueacutee

                                                                                              Deacutefinit une table dans la clause FROM drsquoune expression de seacutelection SQL (SQL-Select) ndash Cette derniegravere peut-ecirctre imbriqueacutee agrave son tour

                                                                                              Select attrshellipFROM [tbls] (SQL-Select) Where hellip

                                                                                              Clause non-documenteacutee sous MsAccessndash La traduction SQL-QBE est bogueacutee

                                                                                              Agrave essayer

                                                                                              48

                                                                                              Clause FROM imbriqueacuteePossibiliteacutes

                                                                                              ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                              ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                              MsAccess

                                                                                              ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                              Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                              49

                                                                                              Clause FROM imbriqueacutee

                                                                                              SELECT sum(weight) AS [poids-total]

                                                                                              FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                              UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                              50

                                                                                              Clause FROM imbriqueacutee

                                                                                              select avg(moy1) as [moyenne-des-moyennes]

                                                                                              FROM

                                                                                              (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                              UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                              51

                                                                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                              select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                              52

                                                                                              Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                              totaux partiels et total geacuteneacuteral

                                                                                              total_Id TotalQty

                                                                                              s1 1300

                                                                                              s2 300

                                                                                              s3 400

                                                                                              s4 400

                                                                                              total Geacuteneacuteral

                                                                                              2400

                                                                                              53

                                                                                              Valeurs nulles

                                                                                              Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                              En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                              DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                              Non WHERE HAVING GROUP BY (rel 1)

                                                                                              Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                              MsAccess Oui DISTINCT Autres clauses

                                                                                              54

                                                                                              Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                              1 x gt y est vrai ou faux

                                                                                              2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                              DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                              SELECT FROM S WHERE CITY =Paris

                                                                                              UNION

                                                                                              SELECT FROM S WHERE NOT CITY = Paris

                                                                                              est toujours pourquoi faire simpleSELECT FROM S

                                                                                              si on peut faire compliqueacute

                                                                                              55

                                                                                              Valeurs nullesValeurs nulles

                                                                                              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                              56

                                                                                              Valeurs nulles

                                                                                              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                              LOG (nul) -gt Error A voir cas par cas

                                                                                              57

                                                                                              Fonctions Scalaires DateTemps

                                                                                              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                              58

                                                                                              Fonctions Scalaires DateTemps

                                                                                              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                              weekday(day(now())-1) AS [day]FROM S

                                                                                              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                              59

                                                                                              Fonctions Scalaires DateTemps

                                                                                              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                              Interval Explanation

                                                                                              Yyyy Year

                                                                                              q Quarter

                                                                                              m Month

                                                                                              y Day of year

                                                                                              d Day

                                                                                              w Weekday

                                                                                              ww Week

                                                                                              h Hour

                                                                                              n Minute

                                                                                              s Second

                                                                                              60

                                                                                              Fonctions Scalaires DateTemps

                                                                                              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                              Test DateDiff

                                                                                              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                              61

                                                                                              Fonctions Scalaires DateTemps

                                                                                              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                              Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                              62

                                                                                              Fonction Scalaire RND

                                                                                              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                                              echantillon s rank

                                                                                              s1 502628087997437E-02

                                                                                              s4 0518015921115875

                                                                                              s3 075702953338623

                                                                                              63

                                                                                              Fonction Scalaire RND

                                                                                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                              Votre commentaire ici

                                                                                              64

                                                                                              Fonctions Financiegraveres

                                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                              65

                                                                                              Fonctions Financiegraveres

                                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                              66

                                                                                              Fonction DDB

                                                                                              insert into DDB (cost salvage life factor amortiss period)

                                                                                              select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                              DDB(cost salvage life period factor) as amortiss period

                                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                              67

                                                                                              Fonction DDB

                                                                                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                              68

                                                                                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                              nombres neacutegatifs

                                                                                              Fonction PMT

                                                                                              69

                                                                                              Fonction PMT

                                                                                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                              Fonction PMT calcul dannuiteacute demprunt

                                                                                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                              preacutesentevaleur_payeacutee surprime

                                                                                              -16049 005 20 200000 -320980 -120980

                                                                                              70

                                                                                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                              Et les nuls que log ne supporte pas

                                                                                              Anneacutee relative

                                                                                              Taux

                                                                                              1 4

                                                                                              2 4

                                                                                              3 3

                                                                                              4 5

                                                                                              5 5

                                                                                              Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                              71

                                                                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                              est eacutequivalente agrave

                                                                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                              WHERE XP = SPP) FROM SP

                                                                                              Testez

                                                                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                              72

                                                                                              LIST Function La requecircte

                                                                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                              Comme les tabulations croiseacutees

                                                                                              ndash Mais en + simple

                                                                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                              ndash En mono attribut (2004)

                                                                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                              sous-formulaires

                                                                                              73

                                                                                              LIST Function

                                                                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                              74

                                                                                              GROUP BY avec WHERE

                                                                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                              75

                                                                                              GROUP BY

                                                                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                              Pourquoi

                                                                                              76

                                                                                              GROUP BY avec HAVING

                                                                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                              77

                                                                                              T-GROUP BY Proposeacute pour SQL

                                                                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                              Le rocircle de -join par rapport agrave equi-join

                                                                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                              INT(AVG(QTY)) AS QTY2FROM SP

                                                                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                              78

                                                                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                              FROM SP Vrai ou Faux

                                                                                              79

                                                                                              T-GROUP BY

                                                                                              Reacutesultat

                                                                                              part avg_qty_other_parts part_avg_qty

                                                                                              p1 250 300

                                                                                              p2 262 250

                                                                                              p3 245 400

                                                                                              p4 260 250

                                                                                              p5 260 250

                                                                                              p6 272 100

                                                                                              80

                                                                                              T-GROUP BY

                                                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                              81

                                                                                              Rangs Non-Denses(Non Dense Ranking)

                                                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                              s p qtyND-rank

                                                                                              s4 p5 400 1

                                                                                              s3 p2 400 1

                                                                                              s1 p3 400 1

                                                                                              s4 p4 300 4

                                                                                              s2 p2 300 4

                                                                                              s1 p1 300 4

                                                                                              s4 p2 200 7

                                                                                              s1 p4 200 7

                                                                                              s1 p2 200 7

                                                                                              s4 p1 200 7

                                                                                              s1 p6 100 11

                                                                                              s1 p5 100 11

                                                                                              82

                                                                                              Rangs Non-Denses(Graphique MsAccess)

                                                                                              s p qty ND-rank

                                                                                              s4 p5 400 1

                                                                                              s3 p2 400 1

                                                                                              s1 p3 400 1

                                                                                              s4 p4 300 4

                                                                                              s2 p2 300 4

                                                                                              s1 p1 300 4

                                                                                              s4 p2 200 7

                                                                                              s1 p4 200 7

                                                                                              s1 p2 200 7

                                                                                              s4 p1 200 7

                                                                                              s1 p6 100 11

                                                                                              s1 p5 100 11

                                                                                              83

                                                                                              Rangs Denses(Dense Ranking)

                                                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                              s p qtyD-rank

                                                                                              s1 p3 400 1

                                                                                              s3 p2 400 1

                                                                                              s4 p5 400 1

                                                                                              s1 p1 300 2

                                                                                              s2 p2 300 2

                                                                                              s4 p4 300 2

                                                                                              s1 p4 200 3

                                                                                              s1 p2 200 3

                                                                                              s4 p2 200 3

                                                                                              s4 p1 200 3

                                                                                              s1 p6 100 4

                                                                                              s1 p5 100 4

                                                                                              84

                                                                                              Rangs DensesGraphique MsAccess

                                                                                              s p qty D-rank

                                                                                              s1 p3 400 1

                                                                                              s3 p2 400 1

                                                                                              s4 p5 400 1

                                                                                              s1 p1 300 2

                                                                                              s2 p2 300 2

                                                                                              s4 p4 300 2

                                                                                              s1 p4 200 3

                                                                                              s1 p2 200 3

                                                                                              s4 p2 200 3

                                                                                              s4 p1 200 3

                                                                                              s1 p6 100 4

                                                                                              s1 p5 100 4

                                                                                              85

                                                                                              Distribution

                                                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                              86

                                                                                              Reacutesultat

                                                                                              s Distribution

                                                                                              s1 0419

                                                                                              s2 0097

                                                                                              s3 0129

                                                                                              s4 0355

                                                                                              87

                                                                                              Distribution Cumulative

                                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                              FROM SP

                                                                                              ORDER BY SP[s]

                                                                                              88

                                                                                              Reacutesultat

                                                                                              sDistribution Cumuleacutee

                                                                                              s1 0419

                                                                                              s2 0516

                                                                                              s3 0645

                                                                                              s4 1

                                                                                              89

                                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                                              90

                                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                              FROM S

                                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                              s1 Smith Paris good good

                                                                                              s2 Jones 100 london good VGood

                                                                                              s3 Blake 30 Paris good good

                                                                                              s4 Clark 10 london OK OK

                                                                                              s5 Adams 30 Athens good good

                                                                                              bull Notez le traitement du null

                                                                                              91

                                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                                              FROM P where weight gt 13

                                                                                              union

                                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                              UNION

                                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                                              ORDER BY warning DESC weight DESC

                                                                                              pname weight Warning

                                                                                              cam 19 Very Heavy

                                                                                              cog 19 Very Heavy

                                                                                              bolt 17 Very Heavy

                                                                                              nut 14 Very Heavy

                                                                                              screw 14 Very Heavy

                                                                                              nut 14 Quite Heavy

                                                                                              screw 14 Quite Heavy

                                                                                              screw 12 Quite Heavy

                                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                              92

                                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                                              On considegravere AVG(Qty1) pour Qty

                                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                              SP

                                                                                              s p qtyQty1

                                                                                              s1 p1 300 400

                                                                                              s1 p2 200

                                                                                              s1 p3 400 600

                                                                                              s1 p4 200 300

                                                                                              s1 p5 100

                                                                                              s1 p6 100 200

                                                                                              s2 p2 300 500

                                                                                              s3 p2 400

                                                                                              s4 p1 200 100

                                                                                              s4 p2 200

                                                                                              s4 p4 300

                                                                                              s4 p5 400

                                                                                              93

                                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                              SP

                                                                                              s p qtyQty1

                                                                                              s1 p1 300 400

                                                                                              s1 p2 200

                                                                                              s1 p3 400 600

                                                                                              s1 p4 200 300

                                                                                              s1 p5 100

                                                                                              s1 p6 100 200

                                                                                              s2 p2 300 500

                                                                                              s3 p2 400

                                                                                              s4 p1 200 100

                                                                                              s4 p2 200

                                                                                              s4 p4 300

                                                                                              s4 p5 400

                                                                                              qty for partpredicted or

                                                                                              unknown Qty1

                                                                                              100 p5

                                                                                              100 predicted value 200

                                                                                              200 p2

                                                                                              200 predicted value 200

                                                                                              300 p4

                                                                                              300 predicted value 450

                                                                                              400 p2

                                                                                              400 p5

                                                                                              400 predicted value 600

                                                                                              94

                                                                                              Tendance

                                                                                              qty Qty1

                                                                                              100 200

                                                                                              200 300

                                                                                              300 400

                                                                                              400 600

                                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                              Graph 3D avec Qty en abscisses

                                                                                              95

                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                              30102008 120 27102008 4

                                                                                              25102008 131 22102008 4

                                                                                              23102008 127 20102008 4

                                                                                              17102008 269 14102008 4

                                                                                              15102008 60 12102008 4

                                                                                              11102008 295 08102008 4

                                                                                              09102008 340 06102008 4

                                                                                              08102008 324 05102008 4

                                                                                              06102008 315 03102008 4

                                                                                              96

                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                              Graphique avec une info-bulle

                                                                                              97

                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                              glissantes

                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                              bull MAVG

                                                                                              bull MSUM

                                                                                              bull MDIFF

                                                                                              bull Voir Teradata + loin

                                                                                              98

                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                              99

                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                              100

                                                                                              Seacuteries financiegraveres

                                                                                              capital taux nval apregraves n ans

                                                                                              taux1val1 apregraves n ans

                                                                                              GainAbs GainRel

                                                                                              100 005 1 105 006 106 1 1

                                                                                              100 005 2 110 006 112 2 2

                                                                                              100 005 3 115 006 119 4 4

                                                                                              100 005 4 121 006 126 5 5

                                                                                              100 005 5 127 006 133 6 6

                                                                                              100 005 6 134 006 141 7 7

                                                                                              100 005 7 140 006 150 10 10

                                                                                              100 005 8 147 006 159 12 12

                                                                                              100 005 9 155 006 168 13 13

                                                                                              100 005 10 162 006 179 17 17

                                                                                              100 005 11 171 006 189 18 18

                                                                                              100 005 12 179 006 201 22 22

                                                                                              100 005 13 188 006 213 25 25

                                                                                              100 005 14 197 006 226 29 29

                                                                                              100 005 15 207 006 239 32 32

                                                                                              100 005 16 218 006 254 36 36

                                                                                              100 005 17 229 006 269 40 40

                                                                                              100 005 18 240 006 285 45 45

                                                                                              100 005 19 252 006 302 50 50

                                                                                              100 005 20 265 006 320 55 55

                                                                                              101

                                                                                              Seacuteries financiegraveres

                                                                                              102

                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                              financiers de la table Produits

                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                              bull En ordre descendant de prix

                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                              bull Plusieurs actionshellip

                                                                                              103

                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                              P prix

                                                                                              p3 200

                                                                                              p1 200

                                                                                              p2 400

                                                                                              p3 200

                                                                                              p4 100

                                                                                              p6 100

                                                                                              p5 300

                                                                                              p8 300

                                                                                              p7 400

                                                                                              p10 200

                                                                                              p12 300

                                                                                              p13 300

                                                                                              104

                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                              ORDER BY 4 desc 8 123

                                                                                              105

                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                              106

                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                              107

                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                              108

                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                              109

                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                              110

                                                                                              GROUPING SETS

                                                                                              On indique explicitement les groupesndash entre ()

                                                                                              le groupe () est constitueacute de toute la table

                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                              HAVING tot-qty gt 100

                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                              111

                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                              112

                                                                                              ROLLUP

                                                                                              Remarquez le laquo null as cityraquo

                                                                                              113

                                                                                              ROLLUP

                                                                                              114

                                                                                              ROLLUP

                                                                                              Et le CUBE

                                                                                              Une solution pour l ambiguiumlteacute

                                                                                              de certains nuls

                                                                                              115

                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                              Wiley (publ)

                                                                                              116

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                              117

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                              118

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              119

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              120

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              121

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              122

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                              123

                                                                                              Sous-Tables Parameacutetreacutees

                                                                                              Exeacutecution autonome

                                                                                              124

                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                              hellip

                                                                                              125

                                                                                              Liste de Choix Multibase

                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                              126

                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                              Tregraves bonne question agrave Microsoft

                                                                                              148

                                                                                              FIN

                                                                                              149

                                                                                              • SQL Avanceacute 2010
                                                                                              • Quoi amp Pourquoi
                                                                                              • Slide 3
                                                                                              • Synonymes
                                                                                              • Noms dattributs
                                                                                              • Slide 6
                                                                                              • Slide 7
                                                                                              • Slide 8
                                                                                              • Insertion dans une Vue
                                                                                              • Insertion dans une Vue (2)
                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                              • Suppression dans une Vue MsAccess
                                                                                              • MsAccess Leacutegendes
                                                                                              • Expressions de valeur
                                                                                              • Expressions de valeur (2)
                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                              • UNION et Noms Drsquoattributs
                                                                                              • UNION et ORDER BY
                                                                                              • ORDER BY et expressions de valeur
                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                              • Preacutedicat TOP
                                                                                              • Preacutedicat TOP (2)
                                                                                              • Clause BETWEEN
                                                                                              • Limitations de NOT
                                                                                              • ANY et ALL
                                                                                              • Injection SQL
                                                                                              • Injection SQL (2)
                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                              • Tabulations Croiseacutees
                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                              • Tabulations Croiseacutees (2)
                                                                                              • Tabulations Croiseacutees (3)
                                                                                              • Tabulations Croiseacutees (4)
                                                                                              • Tabulations Croiseacutees (5)
                                                                                              • XOR
                                                                                              • IMP
                                                                                              • Sous-requecirctes
                                                                                              • Sous-requecirctes (2)
                                                                                              • Sous-requecirctes (3)
                                                                                              • Sous-requecirctes (4)
                                                                                              • Sous-requecirctes (5)
                                                                                              • Sous-requecirctes (6)
                                                                                              • Sous-requecirctes (7)
                                                                                              • Application aux Probabiliteacutes
                                                                                              • Clause FROM imbriqueacutee
                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                              • Valeurs nulles
                                                                                              • Valeurs nulles (2)
                                                                                              • Valeurs nulles (3)
                                                                                              • Valeurs nulles (4)
                                                                                              • Fonctions Scalaires DateTemps
                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                              • Fonction Scalaire RND
                                                                                              • Fonction Scalaire RND (2)
                                                                                              • Fonctions Financiegraveres
                                                                                              • Fonctions Financiegraveres (2)
                                                                                              • Fonction DDB
                                                                                              • Fonction DDB (2)
                                                                                              • Fonction PMT
                                                                                              • Fonction PMT (2)
                                                                                              • Placement agrave taux variable
                                                                                              • GROUP BY
                                                                                              • LIST Function
                                                                                              • LIST Function (2)
                                                                                              • GROUP BY avec WHERE
                                                                                              • GROUP BY (2)
                                                                                              • GROUP BY avec HAVING
                                                                                              • T-GROUP BY
                                                                                              • T-GROUP BY (2)
                                                                                              • T-GROUP BY (3)
                                                                                              • T-GROUP BY (4)
                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                              • Rangs Denses (Dense Ranking)
                                                                                              • Rangs Denses Graphique MsAccess
                                                                                              • Distribution
                                                                                              • Reacutesultat
                                                                                              • Distribution Cumulative
                                                                                              • Reacutesultat (2)
                                                                                              • Cateacutegorisation
                                                                                              • Cateacutegorisation (2)
                                                                                              • Cateacutegorisation (3)
                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                              • Tendance
                                                                                              • Moyenne Glissante
                                                                                              • Moyenne Glissante (2)
                                                                                              • Moyenne Glissante (3)
                                                                                              • Seacuteries financiegraveres
                                                                                              • Seacuteries financiegraveres (2)
                                                                                              • Seacuteries financiegraveres (3)
                                                                                              • Seacuteries financiegraveres (4)
                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                              • GROUPING SETS
                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                              • Slide 112
                                                                                              • Slide 113
                                                                                              • Slide 114
                                                                                              • Autres Opeacuterations Utiles
                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                              • Liste de Choix Multibase
                                                                                              • Liste de Choix Multibase (2)
                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                              • FIN
                                                                                              • Slide 149

                                                                                                48

                                                                                                Clause FROM imbriqueacuteePossibiliteacutes

                                                                                                ndash Agreacutegations par-dessus UNION ou UNION ALL

                                                                                                ndash Imbrication des expressions de valeurndash Calcul de COUNT (DISTINCT)

                                                                                                MsAccess

                                                                                                ndash Reacutecursiviteacute limiteacutee ndash Pas de tabulation croiseacutee dans FROM

                                                                                                Mais la reacutefeacuterence au nom de la requecircte OK

                                                                                                49

                                                                                                Clause FROM imbriqueacutee

                                                                                                SELECT sum(weight) AS [poids-total]

                                                                                                FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                                UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                                50

                                                                                                Clause FROM imbriqueacutee

                                                                                                select avg(moy1) as [moyenne-des-moyennes]

                                                                                                FROM

                                                                                                (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                                UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                                51

                                                                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                                52

                                                                                                Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                totaux partiels et total geacuteneacuteral

                                                                                                total_Id TotalQty

                                                                                                s1 1300

                                                                                                s2 300

                                                                                                s3 400

                                                                                                s4 400

                                                                                                total Geacuteneacuteral

                                                                                                2400

                                                                                                53

                                                                                                Valeurs nulles

                                                                                                Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                                En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                                DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                                Non WHERE HAVING GROUP BY (rel 1)

                                                                                                Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                                MsAccess Oui DISTINCT Autres clauses

                                                                                                54

                                                                                                Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                1 x gt y est vrai ou faux

                                                                                                2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                SELECT FROM S WHERE CITY =Paris

                                                                                                UNION

                                                                                                SELECT FROM S WHERE NOT CITY = Paris

                                                                                                est toujours pourquoi faire simpleSELECT FROM S

                                                                                                si on peut faire compliqueacute

                                                                                                55

                                                                                                Valeurs nullesValeurs nulles

                                                                                                SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                56

                                                                                                Valeurs nulles

                                                                                                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                LOG (nul) -gt Error A voir cas par cas

                                                                                                57

                                                                                                Fonctions Scalaires DateTemps

                                                                                                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                58

                                                                                                Fonctions Scalaires DateTemps

                                                                                                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                weekday(day(now())-1) AS [day]FROM S

                                                                                                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                59

                                                                                                Fonctions Scalaires DateTemps

                                                                                                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                Interval Explanation

                                                                                                Yyyy Year

                                                                                                q Quarter

                                                                                                m Month

                                                                                                y Day of year

                                                                                                d Day

                                                                                                w Weekday

                                                                                                ww Week

                                                                                                h Hour

                                                                                                n Minute

                                                                                                s Second

                                                                                                60

                                                                                                Fonctions Scalaires DateTemps

                                                                                                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                Test DateDiff

                                                                                                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                61

                                                                                                Fonctions Scalaires DateTemps

                                                                                                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                62

                                                                                                Fonction Scalaire RND

                                                                                                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                FROM SPORDER BY rnd(qty) DESC

                                                                                                echantillon s rank

                                                                                                s1 502628087997437E-02

                                                                                                s4 0518015921115875

                                                                                                s3 075702953338623

                                                                                                63

                                                                                                Fonction Scalaire RND

                                                                                                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                FROM SPORDER BY rnd(qty) DESC

                                                                                                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                Votre commentaire ici

                                                                                                64

                                                                                                Fonctions Financiegraveres

                                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                65

                                                                                                Fonctions Financiegraveres

                                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                66

                                                                                                Fonction DDB

                                                                                                insert into DDB (cost salvage life factor amortiss period)

                                                                                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                DDB(cost salvage life period factor) as amortiss period

                                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                67

                                                                                                Fonction DDB

                                                                                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                68

                                                                                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                nombres neacutegatifs

                                                                                                Fonction PMT

                                                                                                69

                                                                                                Fonction PMT

                                                                                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                Fonction PMT calcul dannuiteacute demprunt

                                                                                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                preacutesentevaleur_payeacutee surprime

                                                                                                -16049 005 20 200000 -320980 -120980

                                                                                                70

                                                                                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                Et les nuls que log ne supporte pas

                                                                                                Anneacutee relative

                                                                                                Taux

                                                                                                1 4

                                                                                                2 4

                                                                                                3 3

                                                                                                4 5

                                                                                                5 5

                                                                                                Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                71

                                                                                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                est eacutequivalente agrave

                                                                                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                WHERE XP = SPP) FROM SP

                                                                                                Testez

                                                                                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                72

                                                                                                LIST Function La requecircte

                                                                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                Comme les tabulations croiseacutees

                                                                                                ndash Mais en + simple

                                                                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                ndash En mono attribut (2004)

                                                                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                sous-formulaires

                                                                                                73

                                                                                                LIST Function

                                                                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                74

                                                                                                GROUP BY avec WHERE

                                                                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                75

                                                                                                GROUP BY

                                                                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                Pourquoi

                                                                                                76

                                                                                                GROUP BY avec HAVING

                                                                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                77

                                                                                                T-GROUP BY Proposeacute pour SQL

                                                                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                Le rocircle de -join par rapport agrave equi-join

                                                                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                78

                                                                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                FROM SP Vrai ou Faux

                                                                                                79

                                                                                                T-GROUP BY

                                                                                                Reacutesultat

                                                                                                part avg_qty_other_parts part_avg_qty

                                                                                                p1 250 300

                                                                                                p2 262 250

                                                                                                p3 245 400

                                                                                                p4 260 250

                                                                                                p5 260 250

                                                                                                p6 272 100

                                                                                                80

                                                                                                T-GROUP BY

                                                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                81

                                                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                s p qtyND-rank

                                                                                                s4 p5 400 1

                                                                                                s3 p2 400 1

                                                                                                s1 p3 400 1

                                                                                                s4 p4 300 4

                                                                                                s2 p2 300 4

                                                                                                s1 p1 300 4

                                                                                                s4 p2 200 7

                                                                                                s1 p4 200 7

                                                                                                s1 p2 200 7

                                                                                                s4 p1 200 7

                                                                                                s1 p6 100 11

                                                                                                s1 p5 100 11

                                                                                                82

                                                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                                                s p qty ND-rank

                                                                                                s4 p5 400 1

                                                                                                s3 p2 400 1

                                                                                                s1 p3 400 1

                                                                                                s4 p4 300 4

                                                                                                s2 p2 300 4

                                                                                                s1 p1 300 4

                                                                                                s4 p2 200 7

                                                                                                s1 p4 200 7

                                                                                                s1 p2 200 7

                                                                                                s4 p1 200 7

                                                                                                s1 p6 100 11

                                                                                                s1 p5 100 11

                                                                                                83

                                                                                                Rangs Denses(Dense Ranking)

                                                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                s p qtyD-rank

                                                                                                s1 p3 400 1

                                                                                                s3 p2 400 1

                                                                                                s4 p5 400 1

                                                                                                s1 p1 300 2

                                                                                                s2 p2 300 2

                                                                                                s4 p4 300 2

                                                                                                s1 p4 200 3

                                                                                                s1 p2 200 3

                                                                                                s4 p2 200 3

                                                                                                s4 p1 200 3

                                                                                                s1 p6 100 4

                                                                                                s1 p5 100 4

                                                                                                84

                                                                                                Rangs DensesGraphique MsAccess

                                                                                                s p qty D-rank

                                                                                                s1 p3 400 1

                                                                                                s3 p2 400 1

                                                                                                s4 p5 400 1

                                                                                                s1 p1 300 2

                                                                                                s2 p2 300 2

                                                                                                s4 p4 300 2

                                                                                                s1 p4 200 3

                                                                                                s1 p2 200 3

                                                                                                s4 p2 200 3

                                                                                                s4 p1 200 3

                                                                                                s1 p6 100 4

                                                                                                s1 p5 100 4

                                                                                                85

                                                                                                Distribution

                                                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                86

                                                                                                Reacutesultat

                                                                                                s Distribution

                                                                                                s1 0419

                                                                                                s2 0097

                                                                                                s3 0129

                                                                                                s4 0355

                                                                                                87

                                                                                                Distribution Cumulative

                                                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                FROM SP

                                                                                                ORDER BY SP[s]

                                                                                                88

                                                                                                Reacutesultat

                                                                                                sDistribution Cumuleacutee

                                                                                                s1 0419

                                                                                                s2 0516

                                                                                                s3 0645

                                                                                                s4 1

                                                                                                89

                                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                90

                                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                FROM S

                                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                s1 Smith Paris good good

                                                                                                s2 Jones 100 london good VGood

                                                                                                s3 Blake 30 Paris good good

                                                                                                s4 Clark 10 london OK OK

                                                                                                s5 Adams 30 Athens good good

                                                                                                bull Notez le traitement du null

                                                                                                91

                                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                                FROM P where weight gt 13

                                                                                                union

                                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                UNION

                                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                                ORDER BY warning DESC weight DESC

                                                                                                pname weight Warning

                                                                                                cam 19 Very Heavy

                                                                                                cog 19 Very Heavy

                                                                                                bolt 17 Very Heavy

                                                                                                nut 14 Very Heavy

                                                                                                screw 14 Very Heavy

                                                                                                nut 14 Quite Heavy

                                                                                                screw 14 Quite Heavy

                                                                                                screw 12 Quite Heavy

                                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                92

                                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                SP

                                                                                                s p qtyQty1

                                                                                                s1 p1 300 400

                                                                                                s1 p2 200

                                                                                                s1 p3 400 600

                                                                                                s1 p4 200 300

                                                                                                s1 p5 100

                                                                                                s1 p6 100 200

                                                                                                s2 p2 300 500

                                                                                                s3 p2 400

                                                                                                s4 p1 200 100

                                                                                                s4 p2 200

                                                                                                s4 p4 300

                                                                                                s4 p5 400

                                                                                                93

                                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                SP

                                                                                                s p qtyQty1

                                                                                                s1 p1 300 400

                                                                                                s1 p2 200

                                                                                                s1 p3 400 600

                                                                                                s1 p4 200 300

                                                                                                s1 p5 100

                                                                                                s1 p6 100 200

                                                                                                s2 p2 300 500

                                                                                                s3 p2 400

                                                                                                s4 p1 200 100

                                                                                                s4 p2 200

                                                                                                s4 p4 300

                                                                                                s4 p5 400

                                                                                                qty for partpredicted or

                                                                                                unknown Qty1

                                                                                                100 p5

                                                                                                100 predicted value 200

                                                                                                200 p2

                                                                                                200 predicted value 200

                                                                                                300 p4

                                                                                                300 predicted value 450

                                                                                                400 p2

                                                                                                400 p5

                                                                                                400 predicted value 600

                                                                                                94

                                                                                                Tendance

                                                                                                qty Qty1

                                                                                                100 200

                                                                                                200 300

                                                                                                300 400

                                                                                                400 600

                                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                Graph 3D avec Qty en abscisses

                                                                                                95

                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                30102008 120 27102008 4

                                                                                                25102008 131 22102008 4

                                                                                                23102008 127 20102008 4

                                                                                                17102008 269 14102008 4

                                                                                                15102008 60 12102008 4

                                                                                                11102008 295 08102008 4

                                                                                                09102008 340 06102008 4

                                                                                                08102008 324 05102008 4

                                                                                                06102008 315 03102008 4

                                                                                                96

                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                Graphique avec une info-bulle

                                                                                                97

                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                glissantes

                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                bull MAVG

                                                                                                bull MSUM

                                                                                                bull MDIFF

                                                                                                bull Voir Teradata + loin

                                                                                                98

                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                99

                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                100

                                                                                                Seacuteries financiegraveres

                                                                                                capital taux nval apregraves n ans

                                                                                                taux1val1 apregraves n ans

                                                                                                GainAbs GainRel

                                                                                                100 005 1 105 006 106 1 1

                                                                                                100 005 2 110 006 112 2 2

                                                                                                100 005 3 115 006 119 4 4

                                                                                                100 005 4 121 006 126 5 5

                                                                                                100 005 5 127 006 133 6 6

                                                                                                100 005 6 134 006 141 7 7

                                                                                                100 005 7 140 006 150 10 10

                                                                                                100 005 8 147 006 159 12 12

                                                                                                100 005 9 155 006 168 13 13

                                                                                                100 005 10 162 006 179 17 17

                                                                                                100 005 11 171 006 189 18 18

                                                                                                100 005 12 179 006 201 22 22

                                                                                                100 005 13 188 006 213 25 25

                                                                                                100 005 14 197 006 226 29 29

                                                                                                100 005 15 207 006 239 32 32

                                                                                                100 005 16 218 006 254 36 36

                                                                                                100 005 17 229 006 269 40 40

                                                                                                100 005 18 240 006 285 45 45

                                                                                                100 005 19 252 006 302 50 50

                                                                                                100 005 20 265 006 320 55 55

                                                                                                101

                                                                                                Seacuteries financiegraveres

                                                                                                102

                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                financiers de la table Produits

                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                bull En ordre descendant de prix

                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                bull Plusieurs actionshellip

                                                                                                103

                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                P prix

                                                                                                p3 200

                                                                                                p1 200

                                                                                                p2 400

                                                                                                p3 200

                                                                                                p4 100

                                                                                                p6 100

                                                                                                p5 300

                                                                                                p8 300

                                                                                                p7 400

                                                                                                p10 200

                                                                                                p12 300

                                                                                                p13 300

                                                                                                104

                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                ORDER BY 4 desc 8 123

                                                                                                105

                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                106

                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                107

                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                108

                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                109

                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                110

                                                                                                GROUPING SETS

                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                le groupe () est constitueacute de toute la table

                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                HAVING tot-qty gt 100

                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                111

                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                112

                                                                                                ROLLUP

                                                                                                Remarquez le laquo null as cityraquo

                                                                                                113

                                                                                                ROLLUP

                                                                                                114

                                                                                                ROLLUP

                                                                                                Et le CUBE

                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                de certains nuls

                                                                                                115

                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                Wiley (publ)

                                                                                                116

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                117

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                118

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                119

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                120

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                121

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                122

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                123

                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                Exeacutecution autonome

                                                                                                124

                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                hellip

                                                                                                125

                                                                                                Liste de Choix Multibase

                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                126

                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                148

                                                                                                FIN

                                                                                                149

                                                                                                • SQL Avanceacute 2010
                                                                                                • Quoi amp Pourquoi
                                                                                                • Slide 3
                                                                                                • Synonymes
                                                                                                • Noms dattributs
                                                                                                • Slide 6
                                                                                                • Slide 7
                                                                                                • Slide 8
                                                                                                • Insertion dans une Vue
                                                                                                • Insertion dans une Vue (2)
                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                • Suppression dans une Vue MsAccess
                                                                                                • MsAccess Leacutegendes
                                                                                                • Expressions de valeur
                                                                                                • Expressions de valeur (2)
                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                • UNION et Noms Drsquoattributs
                                                                                                • UNION et ORDER BY
                                                                                                • ORDER BY et expressions de valeur
                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                • Preacutedicat TOP
                                                                                                • Preacutedicat TOP (2)
                                                                                                • Clause BETWEEN
                                                                                                • Limitations de NOT
                                                                                                • ANY et ALL
                                                                                                • Injection SQL
                                                                                                • Injection SQL (2)
                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                • Tabulations Croiseacutees
                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                • Tabulations Croiseacutees (2)
                                                                                                • Tabulations Croiseacutees (3)
                                                                                                • Tabulations Croiseacutees (4)
                                                                                                • Tabulations Croiseacutees (5)
                                                                                                • XOR
                                                                                                • IMP
                                                                                                • Sous-requecirctes
                                                                                                • Sous-requecirctes (2)
                                                                                                • Sous-requecirctes (3)
                                                                                                • Sous-requecirctes (4)
                                                                                                • Sous-requecirctes (5)
                                                                                                • Sous-requecirctes (6)
                                                                                                • Sous-requecirctes (7)
                                                                                                • Application aux Probabiliteacutes
                                                                                                • Clause FROM imbriqueacutee
                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                • Valeurs nulles
                                                                                                • Valeurs nulles (2)
                                                                                                • Valeurs nulles (3)
                                                                                                • Valeurs nulles (4)
                                                                                                • Fonctions Scalaires DateTemps
                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                • Fonction Scalaire RND
                                                                                                • Fonction Scalaire RND (2)
                                                                                                • Fonctions Financiegraveres
                                                                                                • Fonctions Financiegraveres (2)
                                                                                                • Fonction DDB
                                                                                                • Fonction DDB (2)
                                                                                                • Fonction PMT
                                                                                                • Fonction PMT (2)
                                                                                                • Placement agrave taux variable
                                                                                                • GROUP BY
                                                                                                • LIST Function
                                                                                                • LIST Function (2)
                                                                                                • GROUP BY avec WHERE
                                                                                                • GROUP BY (2)
                                                                                                • GROUP BY avec HAVING
                                                                                                • T-GROUP BY
                                                                                                • T-GROUP BY (2)
                                                                                                • T-GROUP BY (3)
                                                                                                • T-GROUP BY (4)
                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                • Distribution
                                                                                                • Reacutesultat
                                                                                                • Distribution Cumulative
                                                                                                • Reacutesultat (2)
                                                                                                • Cateacutegorisation
                                                                                                • Cateacutegorisation (2)
                                                                                                • Cateacutegorisation (3)
                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                • Tendance
                                                                                                • Moyenne Glissante
                                                                                                • Moyenne Glissante (2)
                                                                                                • Moyenne Glissante (3)
                                                                                                • Seacuteries financiegraveres
                                                                                                • Seacuteries financiegraveres (2)
                                                                                                • Seacuteries financiegraveres (3)
                                                                                                • Seacuteries financiegraveres (4)
                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                • GROUPING SETS
                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                • Slide 112
                                                                                                • Slide 113
                                                                                                • Slide 114
                                                                                                • Autres Opeacuterations Utiles
                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                • Liste de Choix Multibase
                                                                                                • Liste de Choix Multibase (2)
                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                • FIN
                                                                                                • Slide 149

                                                                                                  49

                                                                                                  Clause FROM imbriqueacutee

                                                                                                  SELECT sum(weight) AS [poids-total]

                                                                                                  FROM (SELECT weight pcity FROM P WHERE City like l

                                                                                                  UNION ALL SELECT weight scity FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                                  50

                                                                                                  Clause FROM imbriqueacutee

                                                                                                  select avg(moy1) as [moyenne-des-moyennes]

                                                                                                  FROM

                                                                                                  (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                                  UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                                  51

                                                                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                  select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                                  52

                                                                                                  Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                  totaux partiels et total geacuteneacuteral

                                                                                                  total_Id TotalQty

                                                                                                  s1 1300

                                                                                                  s2 300

                                                                                                  s3 400

                                                                                                  s4 400

                                                                                                  total Geacuteneacuteral

                                                                                                  2400

                                                                                                  53

                                                                                                  Valeurs nulles

                                                                                                  Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                                  En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                                  DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                                  Non WHERE HAVING GROUP BY (rel 1)

                                                                                                  Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                                  MsAccess Oui DISTINCT Autres clauses

                                                                                                  54

                                                                                                  Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                  1 x gt y est vrai ou faux

                                                                                                  2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                  DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                  SELECT FROM S WHERE CITY =Paris

                                                                                                  UNION

                                                                                                  SELECT FROM S WHERE NOT CITY = Paris

                                                                                                  est toujours pourquoi faire simpleSELECT FROM S

                                                                                                  si on peut faire compliqueacute

                                                                                                  55

                                                                                                  Valeurs nullesValeurs nulles

                                                                                                  SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                  SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                  Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                  56

                                                                                                  Valeurs nulles

                                                                                                  Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                  LOG (nul) -gt Error A voir cas par cas

                                                                                                  57

                                                                                                  Fonctions Scalaires DateTemps

                                                                                                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                  58

                                                                                                  Fonctions Scalaires DateTemps

                                                                                                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                  weekday(day(now())-1) AS [day]FROM S

                                                                                                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                  59

                                                                                                  Fonctions Scalaires DateTemps

                                                                                                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                  Interval Explanation

                                                                                                  Yyyy Year

                                                                                                  q Quarter

                                                                                                  m Month

                                                                                                  y Day of year

                                                                                                  d Day

                                                                                                  w Weekday

                                                                                                  ww Week

                                                                                                  h Hour

                                                                                                  n Minute

                                                                                                  s Second

                                                                                                  60

                                                                                                  Fonctions Scalaires DateTemps

                                                                                                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                  Test DateDiff

                                                                                                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                  61

                                                                                                  Fonctions Scalaires DateTemps

                                                                                                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                  Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                  62

                                                                                                  Fonction Scalaire RND

                                                                                                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                                                  echantillon s rank

                                                                                                  s1 502628087997437E-02

                                                                                                  s4 0518015921115875

                                                                                                  s3 075702953338623

                                                                                                  63

                                                                                                  Fonction Scalaire RND

                                                                                                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                                                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                  Votre commentaire ici

                                                                                                  64

                                                                                                  Fonctions Financiegraveres

                                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                  65

                                                                                                  Fonctions Financiegraveres

                                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                  66

                                                                                                  Fonction DDB

                                                                                                  insert into DDB (cost salvage life factor amortiss period)

                                                                                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                  DDB(cost salvage life period factor) as amortiss period

                                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                  67

                                                                                                  Fonction DDB

                                                                                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                  68

                                                                                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                  nombres neacutegatifs

                                                                                                  Fonction PMT

                                                                                                  69

                                                                                                  Fonction PMT

                                                                                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                  Fonction PMT calcul dannuiteacute demprunt

                                                                                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                  preacutesentevaleur_payeacutee surprime

                                                                                                  -16049 005 20 200000 -320980 -120980

                                                                                                  70

                                                                                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                  Et les nuls que log ne supporte pas

                                                                                                  Anneacutee relative

                                                                                                  Taux

                                                                                                  1 4

                                                                                                  2 4

                                                                                                  3 3

                                                                                                  4 5

                                                                                                  5 5

                                                                                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                  71

                                                                                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                  est eacutequivalente agrave

                                                                                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                  WHERE XP = SPP) FROM SP

                                                                                                  Testez

                                                                                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                  72

                                                                                                  LIST Function La requecircte

                                                                                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                  Comme les tabulations croiseacutees

                                                                                                  ndash Mais en + simple

                                                                                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                  ndash En mono attribut (2004)

                                                                                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                  sous-formulaires

                                                                                                  73

                                                                                                  LIST Function

                                                                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                  74

                                                                                                  GROUP BY avec WHERE

                                                                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                  75

                                                                                                  GROUP BY

                                                                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                  Pourquoi

                                                                                                  76

                                                                                                  GROUP BY avec HAVING

                                                                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                  77

                                                                                                  T-GROUP BY Proposeacute pour SQL

                                                                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                  Le rocircle de -join par rapport agrave equi-join

                                                                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                  78

                                                                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                  FROM SP Vrai ou Faux

                                                                                                  79

                                                                                                  T-GROUP BY

                                                                                                  Reacutesultat

                                                                                                  part avg_qty_other_parts part_avg_qty

                                                                                                  p1 250 300

                                                                                                  p2 262 250

                                                                                                  p3 245 400

                                                                                                  p4 260 250

                                                                                                  p5 260 250

                                                                                                  p6 272 100

                                                                                                  80

                                                                                                  T-GROUP BY

                                                                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                  81

                                                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                  s p qtyND-rank

                                                                                                  s4 p5 400 1

                                                                                                  s3 p2 400 1

                                                                                                  s1 p3 400 1

                                                                                                  s4 p4 300 4

                                                                                                  s2 p2 300 4

                                                                                                  s1 p1 300 4

                                                                                                  s4 p2 200 7

                                                                                                  s1 p4 200 7

                                                                                                  s1 p2 200 7

                                                                                                  s4 p1 200 7

                                                                                                  s1 p6 100 11

                                                                                                  s1 p5 100 11

                                                                                                  82

                                                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                                                  s p qty ND-rank

                                                                                                  s4 p5 400 1

                                                                                                  s3 p2 400 1

                                                                                                  s1 p3 400 1

                                                                                                  s4 p4 300 4

                                                                                                  s2 p2 300 4

                                                                                                  s1 p1 300 4

                                                                                                  s4 p2 200 7

                                                                                                  s1 p4 200 7

                                                                                                  s1 p2 200 7

                                                                                                  s4 p1 200 7

                                                                                                  s1 p6 100 11

                                                                                                  s1 p5 100 11

                                                                                                  83

                                                                                                  Rangs Denses(Dense Ranking)

                                                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                  s p qtyD-rank

                                                                                                  s1 p3 400 1

                                                                                                  s3 p2 400 1

                                                                                                  s4 p5 400 1

                                                                                                  s1 p1 300 2

                                                                                                  s2 p2 300 2

                                                                                                  s4 p4 300 2

                                                                                                  s1 p4 200 3

                                                                                                  s1 p2 200 3

                                                                                                  s4 p2 200 3

                                                                                                  s4 p1 200 3

                                                                                                  s1 p6 100 4

                                                                                                  s1 p5 100 4

                                                                                                  84

                                                                                                  Rangs DensesGraphique MsAccess

                                                                                                  s p qty D-rank

                                                                                                  s1 p3 400 1

                                                                                                  s3 p2 400 1

                                                                                                  s4 p5 400 1

                                                                                                  s1 p1 300 2

                                                                                                  s2 p2 300 2

                                                                                                  s4 p4 300 2

                                                                                                  s1 p4 200 3

                                                                                                  s1 p2 200 3

                                                                                                  s4 p2 200 3

                                                                                                  s4 p1 200 3

                                                                                                  s1 p6 100 4

                                                                                                  s1 p5 100 4

                                                                                                  85

                                                                                                  Distribution

                                                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                  86

                                                                                                  Reacutesultat

                                                                                                  s Distribution

                                                                                                  s1 0419

                                                                                                  s2 0097

                                                                                                  s3 0129

                                                                                                  s4 0355

                                                                                                  87

                                                                                                  Distribution Cumulative

                                                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                  FROM SP

                                                                                                  ORDER BY SP[s]

                                                                                                  88

                                                                                                  Reacutesultat

                                                                                                  sDistribution Cumuleacutee

                                                                                                  s1 0419

                                                                                                  s2 0516

                                                                                                  s3 0645

                                                                                                  s4 1

                                                                                                  89

                                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                  90

                                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                  FROM S

                                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                  s1 Smith Paris good good

                                                                                                  s2 Jones 100 london good VGood

                                                                                                  s3 Blake 30 Paris good good

                                                                                                  s4 Clark 10 london OK OK

                                                                                                  s5 Adams 30 Athens good good

                                                                                                  bull Notez le traitement du null

                                                                                                  91

                                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                                  FROM P where weight gt 13

                                                                                                  union

                                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                  UNION

                                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                                  ORDER BY warning DESC weight DESC

                                                                                                  pname weight Warning

                                                                                                  cam 19 Very Heavy

                                                                                                  cog 19 Very Heavy

                                                                                                  bolt 17 Very Heavy

                                                                                                  nut 14 Very Heavy

                                                                                                  screw 14 Very Heavy

                                                                                                  nut 14 Quite Heavy

                                                                                                  screw 14 Quite Heavy

                                                                                                  screw 12 Quite Heavy

                                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                  92

                                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                  SP

                                                                                                  s p qtyQty1

                                                                                                  s1 p1 300 400

                                                                                                  s1 p2 200

                                                                                                  s1 p3 400 600

                                                                                                  s1 p4 200 300

                                                                                                  s1 p5 100

                                                                                                  s1 p6 100 200

                                                                                                  s2 p2 300 500

                                                                                                  s3 p2 400

                                                                                                  s4 p1 200 100

                                                                                                  s4 p2 200

                                                                                                  s4 p4 300

                                                                                                  s4 p5 400

                                                                                                  93

                                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                  SP

                                                                                                  s p qtyQty1

                                                                                                  s1 p1 300 400

                                                                                                  s1 p2 200

                                                                                                  s1 p3 400 600

                                                                                                  s1 p4 200 300

                                                                                                  s1 p5 100

                                                                                                  s1 p6 100 200

                                                                                                  s2 p2 300 500

                                                                                                  s3 p2 400

                                                                                                  s4 p1 200 100

                                                                                                  s4 p2 200

                                                                                                  s4 p4 300

                                                                                                  s4 p5 400

                                                                                                  qty for partpredicted or

                                                                                                  unknown Qty1

                                                                                                  100 p5

                                                                                                  100 predicted value 200

                                                                                                  200 p2

                                                                                                  200 predicted value 200

                                                                                                  300 p4

                                                                                                  300 predicted value 450

                                                                                                  400 p2

                                                                                                  400 p5

                                                                                                  400 predicted value 600

                                                                                                  94

                                                                                                  Tendance

                                                                                                  qty Qty1

                                                                                                  100 200

                                                                                                  200 300

                                                                                                  300 400

                                                                                                  400 600

                                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                  Graph 3D avec Qty en abscisses

                                                                                                  95

                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                  30102008 120 27102008 4

                                                                                                  25102008 131 22102008 4

                                                                                                  23102008 127 20102008 4

                                                                                                  17102008 269 14102008 4

                                                                                                  15102008 60 12102008 4

                                                                                                  11102008 295 08102008 4

                                                                                                  09102008 340 06102008 4

                                                                                                  08102008 324 05102008 4

                                                                                                  06102008 315 03102008 4

                                                                                                  96

                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                  Graphique avec une info-bulle

                                                                                                  97

                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                  glissantes

                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                  bull MAVG

                                                                                                  bull MSUM

                                                                                                  bull MDIFF

                                                                                                  bull Voir Teradata + loin

                                                                                                  98

                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                  99

                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                  100

                                                                                                  Seacuteries financiegraveres

                                                                                                  capital taux nval apregraves n ans

                                                                                                  taux1val1 apregraves n ans

                                                                                                  GainAbs GainRel

                                                                                                  100 005 1 105 006 106 1 1

                                                                                                  100 005 2 110 006 112 2 2

                                                                                                  100 005 3 115 006 119 4 4

                                                                                                  100 005 4 121 006 126 5 5

                                                                                                  100 005 5 127 006 133 6 6

                                                                                                  100 005 6 134 006 141 7 7

                                                                                                  100 005 7 140 006 150 10 10

                                                                                                  100 005 8 147 006 159 12 12

                                                                                                  100 005 9 155 006 168 13 13

                                                                                                  100 005 10 162 006 179 17 17

                                                                                                  100 005 11 171 006 189 18 18

                                                                                                  100 005 12 179 006 201 22 22

                                                                                                  100 005 13 188 006 213 25 25

                                                                                                  100 005 14 197 006 226 29 29

                                                                                                  100 005 15 207 006 239 32 32

                                                                                                  100 005 16 218 006 254 36 36

                                                                                                  100 005 17 229 006 269 40 40

                                                                                                  100 005 18 240 006 285 45 45

                                                                                                  100 005 19 252 006 302 50 50

                                                                                                  100 005 20 265 006 320 55 55

                                                                                                  101

                                                                                                  Seacuteries financiegraveres

                                                                                                  102

                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                  financiers de la table Produits

                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                  bull En ordre descendant de prix

                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                  bull Plusieurs actionshellip

                                                                                                  103

                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                  P prix

                                                                                                  p3 200

                                                                                                  p1 200

                                                                                                  p2 400

                                                                                                  p3 200

                                                                                                  p4 100

                                                                                                  p6 100

                                                                                                  p5 300

                                                                                                  p8 300

                                                                                                  p7 400

                                                                                                  p10 200

                                                                                                  p12 300

                                                                                                  p13 300

                                                                                                  104

                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                  ORDER BY 4 desc 8 123

                                                                                                  105

                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                  106

                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                  107

                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                  108

                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                  109

                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                  110

                                                                                                  GROUPING SETS

                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                  HAVING tot-qty gt 100

                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                  111

                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                  112

                                                                                                  ROLLUP

                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                  113

                                                                                                  ROLLUP

                                                                                                  114

                                                                                                  ROLLUP

                                                                                                  Et le CUBE

                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                  de certains nuls

                                                                                                  115

                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                  Wiley (publ)

                                                                                                  116

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                  117

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                  118

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  119

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  120

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  121

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  122

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                  123

                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                  Exeacutecution autonome

                                                                                                  124

                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                  hellip

                                                                                                  125

                                                                                                  Liste de Choix Multibase

                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                  126

                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                  148

                                                                                                  FIN

                                                                                                  149

                                                                                                  • SQL Avanceacute 2010
                                                                                                  • Quoi amp Pourquoi
                                                                                                  • Slide 3
                                                                                                  • Synonymes
                                                                                                  • Noms dattributs
                                                                                                  • Slide 6
                                                                                                  • Slide 7
                                                                                                  • Slide 8
                                                                                                  • Insertion dans une Vue
                                                                                                  • Insertion dans une Vue (2)
                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                  • MsAccess Leacutegendes
                                                                                                  • Expressions de valeur
                                                                                                  • Expressions de valeur (2)
                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                  • UNION et ORDER BY
                                                                                                  • ORDER BY et expressions de valeur
                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                  • Preacutedicat TOP
                                                                                                  • Preacutedicat TOP (2)
                                                                                                  • Clause BETWEEN
                                                                                                  • Limitations de NOT
                                                                                                  • ANY et ALL
                                                                                                  • Injection SQL
                                                                                                  • Injection SQL (2)
                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                  • Tabulations Croiseacutees
                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                  • XOR
                                                                                                  • IMP
                                                                                                  • Sous-requecirctes
                                                                                                  • Sous-requecirctes (2)
                                                                                                  • Sous-requecirctes (3)
                                                                                                  • Sous-requecirctes (4)
                                                                                                  • Sous-requecirctes (5)
                                                                                                  • Sous-requecirctes (6)
                                                                                                  • Sous-requecirctes (7)
                                                                                                  • Application aux Probabiliteacutes
                                                                                                  • Clause FROM imbriqueacutee
                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                  • Valeurs nulles
                                                                                                  • Valeurs nulles (2)
                                                                                                  • Valeurs nulles (3)
                                                                                                  • Valeurs nulles (4)
                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                  • Fonction Scalaire RND
                                                                                                  • Fonction Scalaire RND (2)
                                                                                                  • Fonctions Financiegraveres
                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                  • Fonction DDB
                                                                                                  • Fonction DDB (2)
                                                                                                  • Fonction PMT
                                                                                                  • Fonction PMT (2)
                                                                                                  • Placement agrave taux variable
                                                                                                  • GROUP BY
                                                                                                  • LIST Function
                                                                                                  • LIST Function (2)
                                                                                                  • GROUP BY avec WHERE
                                                                                                  • GROUP BY (2)
                                                                                                  • GROUP BY avec HAVING
                                                                                                  • T-GROUP BY
                                                                                                  • T-GROUP BY (2)
                                                                                                  • T-GROUP BY (3)
                                                                                                  • T-GROUP BY (4)
                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                  • Distribution
                                                                                                  • Reacutesultat
                                                                                                  • Distribution Cumulative
                                                                                                  • Reacutesultat (2)
                                                                                                  • Cateacutegorisation
                                                                                                  • Cateacutegorisation (2)
                                                                                                  • Cateacutegorisation (3)
                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                  • Tendance
                                                                                                  • Moyenne Glissante
                                                                                                  • Moyenne Glissante (2)
                                                                                                  • Moyenne Glissante (3)
                                                                                                  • Seacuteries financiegraveres
                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                  • GROUPING SETS
                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                  • Slide 112
                                                                                                  • Slide 113
                                                                                                  • Slide 114
                                                                                                  • Autres Opeacuterations Utiles
                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                  • Liste de Choix Multibase
                                                                                                  • Liste de Choix Multibase (2)
                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                  • FIN
                                                                                                  • Slide 149

                                                                                                    50

                                                                                                    Clause FROM imbriqueacutee

                                                                                                    select avg(moy1) as [moyenne-des-moyennes]

                                                                                                    FROM

                                                                                                    (SELECT avg(weight) as moy1 FROM P WHERE City like l

                                                                                                    UNION ALL SELECT avg(weight) as moy1 FROM p SP S WHERE p[p]=sp[p] and sp[s]=s[s] and sCity like p)

                                                                                                    51

                                                                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                    select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                                    52

                                                                                                    Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                    totaux partiels et total geacuteneacuteral

                                                                                                    total_Id TotalQty

                                                                                                    s1 1300

                                                                                                    s2 300

                                                                                                    s3 400

                                                                                                    s4 400

                                                                                                    total Geacuteneacuteral

                                                                                                    2400

                                                                                                    53

                                                                                                    Valeurs nulles

                                                                                                    Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                                    En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                                    DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                                    Non WHERE HAVING GROUP BY (rel 1)

                                                                                                    Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                                    MsAccess Oui DISTINCT Autres clauses

                                                                                                    54

                                                                                                    Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                    1 x gt y est vrai ou faux

                                                                                                    2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                    DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                    SELECT FROM S WHERE CITY =Paris

                                                                                                    UNION

                                                                                                    SELECT FROM S WHERE NOT CITY = Paris

                                                                                                    est toujours pourquoi faire simpleSELECT FROM S

                                                                                                    si on peut faire compliqueacute

                                                                                                    55

                                                                                                    Valeurs nullesValeurs nulles

                                                                                                    SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                    SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                    Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                    56

                                                                                                    Valeurs nulles

                                                                                                    Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                    LOG (nul) -gt Error A voir cas par cas

                                                                                                    57

                                                                                                    Fonctions Scalaires DateTemps

                                                                                                    SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                    FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                    franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                    weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                    58

                                                                                                    Fonctions Scalaires DateTemps

                                                                                                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                    weekday(day(now())-1) AS [day]FROM S

                                                                                                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                    59

                                                                                                    Fonctions Scalaires DateTemps

                                                                                                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                    Interval Explanation

                                                                                                    Yyyy Year

                                                                                                    q Quarter

                                                                                                    m Month

                                                                                                    y Day of year

                                                                                                    d Day

                                                                                                    w Weekday

                                                                                                    ww Week

                                                                                                    h Hour

                                                                                                    n Minute

                                                                                                    s Second

                                                                                                    60

                                                                                                    Fonctions Scalaires DateTemps

                                                                                                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                    Test DateDiff

                                                                                                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                    61

                                                                                                    Fonctions Scalaires DateTemps

                                                                                                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                    Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                    62

                                                                                                    Fonction Scalaire RND

                                                                                                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                                                    echantillon s rank

                                                                                                    s1 502628087997437E-02

                                                                                                    s4 0518015921115875

                                                                                                    s3 075702953338623

                                                                                                    63

                                                                                                    Fonction Scalaire RND

                                                                                                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                                                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                    Votre commentaire ici

                                                                                                    64

                                                                                                    Fonctions Financiegraveres

                                                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                    65

                                                                                                    Fonctions Financiegraveres

                                                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                    66

                                                                                                    Fonction DDB

                                                                                                    insert into DDB (cost salvage life factor amortiss period)

                                                                                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                    DDB(cost salvage life period factor) as amortiss period

                                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                    67

                                                                                                    Fonction DDB

                                                                                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                    68

                                                                                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                    nombres neacutegatifs

                                                                                                    Fonction PMT

                                                                                                    69

                                                                                                    Fonction PMT

                                                                                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                    Fonction PMT calcul dannuiteacute demprunt

                                                                                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                    preacutesentevaleur_payeacutee surprime

                                                                                                    -16049 005 20 200000 -320980 -120980

                                                                                                    70

                                                                                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                    Et les nuls que log ne supporte pas

                                                                                                    Anneacutee relative

                                                                                                    Taux

                                                                                                    1 4

                                                                                                    2 4

                                                                                                    3 3

                                                                                                    4 5

                                                                                                    5 5

                                                                                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                    71

                                                                                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                    est eacutequivalente agrave

                                                                                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                    WHERE XP = SPP) FROM SP

                                                                                                    Testez

                                                                                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                    72

                                                                                                    LIST Function La requecircte

                                                                                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                    Comme les tabulations croiseacutees

                                                                                                    ndash Mais en + simple

                                                                                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                    ndash En mono attribut (2004)

                                                                                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                    sous-formulaires

                                                                                                    73

                                                                                                    LIST Function

                                                                                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                    74

                                                                                                    GROUP BY avec WHERE

                                                                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                    75

                                                                                                    GROUP BY

                                                                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                    Pourquoi

                                                                                                    76

                                                                                                    GROUP BY avec HAVING

                                                                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                    77

                                                                                                    T-GROUP BY Proposeacute pour SQL

                                                                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                    Le rocircle de -join par rapport agrave equi-join

                                                                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                    78

                                                                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                    FROM SP Vrai ou Faux

                                                                                                    79

                                                                                                    T-GROUP BY

                                                                                                    Reacutesultat

                                                                                                    part avg_qty_other_parts part_avg_qty

                                                                                                    p1 250 300

                                                                                                    p2 262 250

                                                                                                    p3 245 400

                                                                                                    p4 260 250

                                                                                                    p5 260 250

                                                                                                    p6 272 100

                                                                                                    80

                                                                                                    T-GROUP BY

                                                                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                    81

                                                                                                    Rangs Non-Denses(Non Dense Ranking)

                                                                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                    s p qtyND-rank

                                                                                                    s4 p5 400 1

                                                                                                    s3 p2 400 1

                                                                                                    s1 p3 400 1

                                                                                                    s4 p4 300 4

                                                                                                    s2 p2 300 4

                                                                                                    s1 p1 300 4

                                                                                                    s4 p2 200 7

                                                                                                    s1 p4 200 7

                                                                                                    s1 p2 200 7

                                                                                                    s4 p1 200 7

                                                                                                    s1 p6 100 11

                                                                                                    s1 p5 100 11

                                                                                                    82

                                                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                                                    s p qty ND-rank

                                                                                                    s4 p5 400 1

                                                                                                    s3 p2 400 1

                                                                                                    s1 p3 400 1

                                                                                                    s4 p4 300 4

                                                                                                    s2 p2 300 4

                                                                                                    s1 p1 300 4

                                                                                                    s4 p2 200 7

                                                                                                    s1 p4 200 7

                                                                                                    s1 p2 200 7

                                                                                                    s4 p1 200 7

                                                                                                    s1 p6 100 11

                                                                                                    s1 p5 100 11

                                                                                                    83

                                                                                                    Rangs Denses(Dense Ranking)

                                                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                    s p qtyD-rank

                                                                                                    s1 p3 400 1

                                                                                                    s3 p2 400 1

                                                                                                    s4 p5 400 1

                                                                                                    s1 p1 300 2

                                                                                                    s2 p2 300 2

                                                                                                    s4 p4 300 2

                                                                                                    s1 p4 200 3

                                                                                                    s1 p2 200 3

                                                                                                    s4 p2 200 3

                                                                                                    s4 p1 200 3

                                                                                                    s1 p6 100 4

                                                                                                    s1 p5 100 4

                                                                                                    84

                                                                                                    Rangs DensesGraphique MsAccess

                                                                                                    s p qty D-rank

                                                                                                    s1 p3 400 1

                                                                                                    s3 p2 400 1

                                                                                                    s4 p5 400 1

                                                                                                    s1 p1 300 2

                                                                                                    s2 p2 300 2

                                                                                                    s4 p4 300 2

                                                                                                    s1 p4 200 3

                                                                                                    s1 p2 200 3

                                                                                                    s4 p2 200 3

                                                                                                    s4 p1 200 3

                                                                                                    s1 p6 100 4

                                                                                                    s1 p5 100 4

                                                                                                    85

                                                                                                    Distribution

                                                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                    86

                                                                                                    Reacutesultat

                                                                                                    s Distribution

                                                                                                    s1 0419

                                                                                                    s2 0097

                                                                                                    s3 0129

                                                                                                    s4 0355

                                                                                                    87

                                                                                                    Distribution Cumulative

                                                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                    FROM SP

                                                                                                    ORDER BY SP[s]

                                                                                                    88

                                                                                                    Reacutesultat

                                                                                                    sDistribution Cumuleacutee

                                                                                                    s1 0419

                                                                                                    s2 0516

                                                                                                    s3 0645

                                                                                                    s4 1

                                                                                                    89

                                                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                    90

                                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                    FROM S

                                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                    s1 Smith Paris good good

                                                                                                    s2 Jones 100 london good VGood

                                                                                                    s3 Blake 30 Paris good good

                                                                                                    s4 Clark 10 london OK OK

                                                                                                    s5 Adams 30 Athens good good

                                                                                                    bull Notez le traitement du null

                                                                                                    91

                                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                                    FROM P where weight gt 13

                                                                                                    union

                                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                    UNION

                                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                                    ORDER BY warning DESC weight DESC

                                                                                                    pname weight Warning

                                                                                                    cam 19 Very Heavy

                                                                                                    cog 19 Very Heavy

                                                                                                    bolt 17 Very Heavy

                                                                                                    nut 14 Very Heavy

                                                                                                    screw 14 Very Heavy

                                                                                                    nut 14 Quite Heavy

                                                                                                    screw 14 Quite Heavy

                                                                                                    screw 12 Quite Heavy

                                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                    92

                                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                    SP

                                                                                                    s p qtyQty1

                                                                                                    s1 p1 300 400

                                                                                                    s1 p2 200

                                                                                                    s1 p3 400 600

                                                                                                    s1 p4 200 300

                                                                                                    s1 p5 100

                                                                                                    s1 p6 100 200

                                                                                                    s2 p2 300 500

                                                                                                    s3 p2 400

                                                                                                    s4 p1 200 100

                                                                                                    s4 p2 200

                                                                                                    s4 p4 300

                                                                                                    s4 p5 400

                                                                                                    93

                                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                    SP

                                                                                                    s p qtyQty1

                                                                                                    s1 p1 300 400

                                                                                                    s1 p2 200

                                                                                                    s1 p3 400 600

                                                                                                    s1 p4 200 300

                                                                                                    s1 p5 100

                                                                                                    s1 p6 100 200

                                                                                                    s2 p2 300 500

                                                                                                    s3 p2 400

                                                                                                    s4 p1 200 100

                                                                                                    s4 p2 200

                                                                                                    s4 p4 300

                                                                                                    s4 p5 400

                                                                                                    qty for partpredicted or

                                                                                                    unknown Qty1

                                                                                                    100 p5

                                                                                                    100 predicted value 200

                                                                                                    200 p2

                                                                                                    200 predicted value 200

                                                                                                    300 p4

                                                                                                    300 predicted value 450

                                                                                                    400 p2

                                                                                                    400 p5

                                                                                                    400 predicted value 600

                                                                                                    94

                                                                                                    Tendance

                                                                                                    qty Qty1

                                                                                                    100 200

                                                                                                    200 300

                                                                                                    300 400

                                                                                                    400 600

                                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                    Graph 3D avec Qty en abscisses

                                                                                                    95

                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                    30102008 120 27102008 4

                                                                                                    25102008 131 22102008 4

                                                                                                    23102008 127 20102008 4

                                                                                                    17102008 269 14102008 4

                                                                                                    15102008 60 12102008 4

                                                                                                    11102008 295 08102008 4

                                                                                                    09102008 340 06102008 4

                                                                                                    08102008 324 05102008 4

                                                                                                    06102008 315 03102008 4

                                                                                                    96

                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                    Graphique avec une info-bulle

                                                                                                    97

                                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                    glissantes

                                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                                    bull MAVG

                                                                                                    bull MSUM

                                                                                                    bull MDIFF

                                                                                                    bull Voir Teradata + loin

                                                                                                    98

                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                    99

                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                    100

                                                                                                    Seacuteries financiegraveres

                                                                                                    capital taux nval apregraves n ans

                                                                                                    taux1val1 apregraves n ans

                                                                                                    GainAbs GainRel

                                                                                                    100 005 1 105 006 106 1 1

                                                                                                    100 005 2 110 006 112 2 2

                                                                                                    100 005 3 115 006 119 4 4

                                                                                                    100 005 4 121 006 126 5 5

                                                                                                    100 005 5 127 006 133 6 6

                                                                                                    100 005 6 134 006 141 7 7

                                                                                                    100 005 7 140 006 150 10 10

                                                                                                    100 005 8 147 006 159 12 12

                                                                                                    100 005 9 155 006 168 13 13

                                                                                                    100 005 10 162 006 179 17 17

                                                                                                    100 005 11 171 006 189 18 18

                                                                                                    100 005 12 179 006 201 22 22

                                                                                                    100 005 13 188 006 213 25 25

                                                                                                    100 005 14 197 006 226 29 29

                                                                                                    100 005 15 207 006 239 32 32

                                                                                                    100 005 16 218 006 254 36 36

                                                                                                    100 005 17 229 006 269 40 40

                                                                                                    100 005 18 240 006 285 45 45

                                                                                                    100 005 19 252 006 302 50 50

                                                                                                    100 005 20 265 006 320 55 55

                                                                                                    101

                                                                                                    Seacuteries financiegraveres

                                                                                                    102

                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                    financiers de la table Produits

                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                    bull En ordre descendant de prix

                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                    bull Plusieurs actionshellip

                                                                                                    103

                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                    P prix

                                                                                                    p3 200

                                                                                                    p1 200

                                                                                                    p2 400

                                                                                                    p3 200

                                                                                                    p4 100

                                                                                                    p6 100

                                                                                                    p5 300

                                                                                                    p8 300

                                                                                                    p7 400

                                                                                                    p10 200

                                                                                                    p12 300

                                                                                                    p13 300

                                                                                                    104

                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                    ORDER BY 4 desc 8 123

                                                                                                    105

                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                    106

                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                    107

                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                    108

                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                    109

                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                    110

                                                                                                    GROUPING SETS

                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                    HAVING tot-qty gt 100

                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                    111

                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                    112

                                                                                                    ROLLUP

                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                    113

                                                                                                    ROLLUP

                                                                                                    114

                                                                                                    ROLLUP

                                                                                                    Et le CUBE

                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                    de certains nuls

                                                                                                    115

                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                    Wiley (publ)

                                                                                                    116

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                    117

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                    118

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    119

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    120

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    121

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    122

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                    123

                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                    Exeacutecution autonome

                                                                                                    124

                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                    hellip

                                                                                                    125

                                                                                                    Liste de Choix Multibase

                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                    126

                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                    148

                                                                                                    FIN

                                                                                                    149

                                                                                                    • SQL Avanceacute 2010
                                                                                                    • Quoi amp Pourquoi
                                                                                                    • Slide 3
                                                                                                    • Synonymes
                                                                                                    • Noms dattributs
                                                                                                    • Slide 6
                                                                                                    • Slide 7
                                                                                                    • Slide 8
                                                                                                    • Insertion dans une Vue
                                                                                                    • Insertion dans une Vue (2)
                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                    • MsAccess Leacutegendes
                                                                                                    • Expressions de valeur
                                                                                                    • Expressions de valeur (2)
                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                    • UNION et ORDER BY
                                                                                                    • ORDER BY et expressions de valeur
                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                    • Preacutedicat TOP
                                                                                                    • Preacutedicat TOP (2)
                                                                                                    • Clause BETWEEN
                                                                                                    • Limitations de NOT
                                                                                                    • ANY et ALL
                                                                                                    • Injection SQL
                                                                                                    • Injection SQL (2)
                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                    • Tabulations Croiseacutees
                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                    • XOR
                                                                                                    • IMP
                                                                                                    • Sous-requecirctes
                                                                                                    • Sous-requecirctes (2)
                                                                                                    • Sous-requecirctes (3)
                                                                                                    • Sous-requecirctes (4)
                                                                                                    • Sous-requecirctes (5)
                                                                                                    • Sous-requecirctes (6)
                                                                                                    • Sous-requecirctes (7)
                                                                                                    • Application aux Probabiliteacutes
                                                                                                    • Clause FROM imbriqueacutee
                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                    • Valeurs nulles
                                                                                                    • Valeurs nulles (2)
                                                                                                    • Valeurs nulles (3)
                                                                                                    • Valeurs nulles (4)
                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                    • Fonction Scalaire RND
                                                                                                    • Fonction Scalaire RND (2)
                                                                                                    • Fonctions Financiegraveres
                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                    • Fonction DDB
                                                                                                    • Fonction DDB (2)
                                                                                                    • Fonction PMT
                                                                                                    • Fonction PMT (2)
                                                                                                    • Placement agrave taux variable
                                                                                                    • GROUP BY
                                                                                                    • LIST Function
                                                                                                    • LIST Function (2)
                                                                                                    • GROUP BY avec WHERE
                                                                                                    • GROUP BY (2)
                                                                                                    • GROUP BY avec HAVING
                                                                                                    • T-GROUP BY
                                                                                                    • T-GROUP BY (2)
                                                                                                    • T-GROUP BY (3)
                                                                                                    • T-GROUP BY (4)
                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                    • Distribution
                                                                                                    • Reacutesultat
                                                                                                    • Distribution Cumulative
                                                                                                    • Reacutesultat (2)
                                                                                                    • Cateacutegorisation
                                                                                                    • Cateacutegorisation (2)
                                                                                                    • Cateacutegorisation (3)
                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                    • Tendance
                                                                                                    • Moyenne Glissante
                                                                                                    • Moyenne Glissante (2)
                                                                                                    • Moyenne Glissante (3)
                                                                                                    • Seacuteries financiegraveres
                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                    • GROUPING SETS
                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                    • Slide 112
                                                                                                    • Slide 113
                                                                                                    • Slide 114
                                                                                                    • Autres Opeacuterations Utiles
                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                    • Liste de Choix Multibase
                                                                                                    • Liste de Choix Multibase (2)
                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                    • FIN
                                                                                                    • Slide 149

                                                                                                      51

                                                                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                      select total Geacuteneacuteral as total_Id sum(Sqty) as TotalQty from (SELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s])union allSELECT SP[s] as S_Id Sum(SPqty) AS SqtyFROM SPGROUP BY SP[s]order by 1

                                                                                                      52

                                                                                                      Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                      totaux partiels et total geacuteneacuteral

                                                                                                      total_Id TotalQty

                                                                                                      s1 1300

                                                                                                      s2 300

                                                                                                      s3 400

                                                                                                      s4 400

                                                                                                      total Geacuteneacuteral

                                                                                                      2400

                                                                                                      53

                                                                                                      Valeurs nulles

                                                                                                      Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                                      En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                                      DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                                      Non WHERE HAVING GROUP BY (rel 1)

                                                                                                      Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                                      MsAccess Oui DISTINCT Autres clauses

                                                                                                      54

                                                                                                      Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                      1 x gt y est vrai ou faux

                                                                                                      2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                      DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                      SELECT FROM S WHERE CITY =Paris

                                                                                                      UNION

                                                                                                      SELECT FROM S WHERE NOT CITY = Paris

                                                                                                      est toujours pourquoi faire simpleSELECT FROM S

                                                                                                      si on peut faire compliqueacute

                                                                                                      55

                                                                                                      Valeurs nullesValeurs nulles

                                                                                                      SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                      SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                      Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                      56

                                                                                                      Valeurs nulles

                                                                                                      Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                      LOG (nul) -gt Error A voir cas par cas

                                                                                                      57

                                                                                                      Fonctions Scalaires DateTemps

                                                                                                      SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                      FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                      franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                      weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                      58

                                                                                                      Fonctions Scalaires DateTemps

                                                                                                      SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                      month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                      weekday(day(now())-1) AS [day]FROM S

                                                                                                      bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                      59

                                                                                                      Fonctions Scalaires DateTemps

                                                                                                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                      Interval Explanation

                                                                                                      Yyyy Year

                                                                                                      q Quarter

                                                                                                      m Month

                                                                                                      y Day of year

                                                                                                      d Day

                                                                                                      w Weekday

                                                                                                      ww Week

                                                                                                      h Hour

                                                                                                      n Minute

                                                                                                      s Second

                                                                                                      60

                                                                                                      Fonctions Scalaires DateTemps

                                                                                                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                      Test DateDiff

                                                                                                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                      61

                                                                                                      Fonctions Scalaires DateTemps

                                                                                                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                      Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                      62

                                                                                                      Fonction Scalaire RND

                                                                                                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                                                      echantillon s rank

                                                                                                      s1 502628087997437E-02

                                                                                                      s4 0518015921115875

                                                                                                      s3 075702953338623

                                                                                                      63

                                                                                                      Fonction Scalaire RND

                                                                                                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                                                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                      Votre commentaire ici

                                                                                                      64

                                                                                                      Fonctions Financiegraveres

                                                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                      65

                                                                                                      Fonctions Financiegraveres

                                                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                      66

                                                                                                      Fonction DDB

                                                                                                      insert into DDB (cost salvage life factor amortiss period)

                                                                                                      select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                      DDB(cost salvage life period factor) as amortiss period

                                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                      67

                                                                                                      Fonction DDB

                                                                                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                      68

                                                                                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                      nombres neacutegatifs

                                                                                                      Fonction PMT

                                                                                                      69

                                                                                                      Fonction PMT

                                                                                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                      Fonction PMT calcul dannuiteacute demprunt

                                                                                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                      preacutesentevaleur_payeacutee surprime

                                                                                                      -16049 005 20 200000 -320980 -120980

                                                                                                      70

                                                                                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                      Et les nuls que log ne supporte pas

                                                                                                      Anneacutee relative

                                                                                                      Taux

                                                                                                      1 4

                                                                                                      2 4

                                                                                                      3 3

                                                                                                      4 5

                                                                                                      5 5

                                                                                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                      71

                                                                                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                      est eacutequivalente agrave

                                                                                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                      WHERE XP = SPP) FROM SP

                                                                                                      Testez

                                                                                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                      72

                                                                                                      LIST Function La requecircte

                                                                                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                      Comme les tabulations croiseacutees

                                                                                                      ndash Mais en + simple

                                                                                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                      ndash En mono attribut (2004)

                                                                                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                      sous-formulaires

                                                                                                      73

                                                                                                      LIST Function

                                                                                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                      74

                                                                                                      GROUP BY avec WHERE

                                                                                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                      75

                                                                                                      GROUP BY

                                                                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                      Pourquoi

                                                                                                      76

                                                                                                      GROUP BY avec HAVING

                                                                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                      77

                                                                                                      T-GROUP BY Proposeacute pour SQL

                                                                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                      Le rocircle de -join par rapport agrave equi-join

                                                                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                      78

                                                                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                      FROM SP Vrai ou Faux

                                                                                                      79

                                                                                                      T-GROUP BY

                                                                                                      Reacutesultat

                                                                                                      part avg_qty_other_parts part_avg_qty

                                                                                                      p1 250 300

                                                                                                      p2 262 250

                                                                                                      p3 245 400

                                                                                                      p4 260 250

                                                                                                      p5 260 250

                                                                                                      p6 272 100

                                                                                                      80

                                                                                                      T-GROUP BY

                                                                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                      81

                                                                                                      Rangs Non-Denses(Non Dense Ranking)

                                                                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                      s p qtyND-rank

                                                                                                      s4 p5 400 1

                                                                                                      s3 p2 400 1

                                                                                                      s1 p3 400 1

                                                                                                      s4 p4 300 4

                                                                                                      s2 p2 300 4

                                                                                                      s1 p1 300 4

                                                                                                      s4 p2 200 7

                                                                                                      s1 p4 200 7

                                                                                                      s1 p2 200 7

                                                                                                      s4 p1 200 7

                                                                                                      s1 p6 100 11

                                                                                                      s1 p5 100 11

                                                                                                      82

                                                                                                      Rangs Non-Denses(Graphique MsAccess)

                                                                                                      s p qty ND-rank

                                                                                                      s4 p5 400 1

                                                                                                      s3 p2 400 1

                                                                                                      s1 p3 400 1

                                                                                                      s4 p4 300 4

                                                                                                      s2 p2 300 4

                                                                                                      s1 p1 300 4

                                                                                                      s4 p2 200 7

                                                                                                      s1 p4 200 7

                                                                                                      s1 p2 200 7

                                                                                                      s4 p1 200 7

                                                                                                      s1 p6 100 11

                                                                                                      s1 p5 100 11

                                                                                                      83

                                                                                                      Rangs Denses(Dense Ranking)

                                                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                      s p qtyD-rank

                                                                                                      s1 p3 400 1

                                                                                                      s3 p2 400 1

                                                                                                      s4 p5 400 1

                                                                                                      s1 p1 300 2

                                                                                                      s2 p2 300 2

                                                                                                      s4 p4 300 2

                                                                                                      s1 p4 200 3

                                                                                                      s1 p2 200 3

                                                                                                      s4 p2 200 3

                                                                                                      s4 p1 200 3

                                                                                                      s1 p6 100 4

                                                                                                      s1 p5 100 4

                                                                                                      84

                                                                                                      Rangs DensesGraphique MsAccess

                                                                                                      s p qty D-rank

                                                                                                      s1 p3 400 1

                                                                                                      s3 p2 400 1

                                                                                                      s4 p5 400 1

                                                                                                      s1 p1 300 2

                                                                                                      s2 p2 300 2

                                                                                                      s4 p4 300 2

                                                                                                      s1 p4 200 3

                                                                                                      s1 p2 200 3

                                                                                                      s4 p2 200 3

                                                                                                      s4 p1 200 3

                                                                                                      s1 p6 100 4

                                                                                                      s1 p5 100 4

                                                                                                      85

                                                                                                      Distribution

                                                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                      86

                                                                                                      Reacutesultat

                                                                                                      s Distribution

                                                                                                      s1 0419

                                                                                                      s2 0097

                                                                                                      s3 0129

                                                                                                      s4 0355

                                                                                                      87

                                                                                                      Distribution Cumulative

                                                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                      FROM SP

                                                                                                      ORDER BY SP[s]

                                                                                                      88

                                                                                                      Reacutesultat

                                                                                                      sDistribution Cumuleacutee

                                                                                                      s1 0419

                                                                                                      s2 0516

                                                                                                      s3 0645

                                                                                                      s4 1

                                                                                                      89

                                                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                      90

                                                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                      FROM S

                                                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                      s1 Smith Paris good good

                                                                                                      s2 Jones 100 london good VGood

                                                                                                      s3 Blake 30 Paris good good

                                                                                                      s4 Clark 10 london OK OK

                                                                                                      s5 Adams 30 Athens good good

                                                                                                      bull Notez le traitement du null

                                                                                                      91

                                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                                      FROM P where weight gt 13

                                                                                                      union

                                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                      UNION

                                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                                      ORDER BY warning DESC weight DESC

                                                                                                      pname weight Warning

                                                                                                      cam 19 Very Heavy

                                                                                                      cog 19 Very Heavy

                                                                                                      bolt 17 Very Heavy

                                                                                                      nut 14 Very Heavy

                                                                                                      screw 14 Very Heavy

                                                                                                      nut 14 Quite Heavy

                                                                                                      screw 14 Quite Heavy

                                                                                                      screw 12 Quite Heavy

                                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                      92

                                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                      SP

                                                                                                      s p qtyQty1

                                                                                                      s1 p1 300 400

                                                                                                      s1 p2 200

                                                                                                      s1 p3 400 600

                                                                                                      s1 p4 200 300

                                                                                                      s1 p5 100

                                                                                                      s1 p6 100 200

                                                                                                      s2 p2 300 500

                                                                                                      s3 p2 400

                                                                                                      s4 p1 200 100

                                                                                                      s4 p2 200

                                                                                                      s4 p4 300

                                                                                                      s4 p5 400

                                                                                                      93

                                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                      SP

                                                                                                      s p qtyQty1

                                                                                                      s1 p1 300 400

                                                                                                      s1 p2 200

                                                                                                      s1 p3 400 600

                                                                                                      s1 p4 200 300

                                                                                                      s1 p5 100

                                                                                                      s1 p6 100 200

                                                                                                      s2 p2 300 500

                                                                                                      s3 p2 400

                                                                                                      s4 p1 200 100

                                                                                                      s4 p2 200

                                                                                                      s4 p4 300

                                                                                                      s4 p5 400

                                                                                                      qty for partpredicted or

                                                                                                      unknown Qty1

                                                                                                      100 p5

                                                                                                      100 predicted value 200

                                                                                                      200 p2

                                                                                                      200 predicted value 200

                                                                                                      300 p4

                                                                                                      300 predicted value 450

                                                                                                      400 p2

                                                                                                      400 p5

                                                                                                      400 predicted value 600

                                                                                                      94

                                                                                                      Tendance

                                                                                                      qty Qty1

                                                                                                      100 200

                                                                                                      200 300

                                                                                                      300 400

                                                                                                      400 600

                                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                      Graph 3D avec Qty en abscisses

                                                                                                      95

                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                      30102008 120 27102008 4

                                                                                                      25102008 131 22102008 4

                                                                                                      23102008 127 20102008 4

                                                                                                      17102008 269 14102008 4

                                                                                                      15102008 60 12102008 4

                                                                                                      11102008 295 08102008 4

                                                                                                      09102008 340 06102008 4

                                                                                                      08102008 324 05102008 4

                                                                                                      06102008 315 03102008 4

                                                                                                      96

                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                      Graphique avec une info-bulle

                                                                                                      97

                                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                      glissantes

                                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                                      bull MAVG

                                                                                                      bull MSUM

                                                                                                      bull MDIFF

                                                                                                      bull Voir Teradata + loin

                                                                                                      98

                                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                      99

                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                      100

                                                                                                      Seacuteries financiegraveres

                                                                                                      capital taux nval apregraves n ans

                                                                                                      taux1val1 apregraves n ans

                                                                                                      GainAbs GainRel

                                                                                                      100 005 1 105 006 106 1 1

                                                                                                      100 005 2 110 006 112 2 2

                                                                                                      100 005 3 115 006 119 4 4

                                                                                                      100 005 4 121 006 126 5 5

                                                                                                      100 005 5 127 006 133 6 6

                                                                                                      100 005 6 134 006 141 7 7

                                                                                                      100 005 7 140 006 150 10 10

                                                                                                      100 005 8 147 006 159 12 12

                                                                                                      100 005 9 155 006 168 13 13

                                                                                                      100 005 10 162 006 179 17 17

                                                                                                      100 005 11 171 006 189 18 18

                                                                                                      100 005 12 179 006 201 22 22

                                                                                                      100 005 13 188 006 213 25 25

                                                                                                      100 005 14 197 006 226 29 29

                                                                                                      100 005 15 207 006 239 32 32

                                                                                                      100 005 16 218 006 254 36 36

                                                                                                      100 005 17 229 006 269 40 40

                                                                                                      100 005 18 240 006 285 45 45

                                                                                                      100 005 19 252 006 302 50 50

                                                                                                      100 005 20 265 006 320 55 55

                                                                                                      101

                                                                                                      Seacuteries financiegraveres

                                                                                                      102

                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                      financiers de la table Produits

                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                      bull En ordre descendant de prix

                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                      bull Plusieurs actionshellip

                                                                                                      103

                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                      P prix

                                                                                                      p3 200

                                                                                                      p1 200

                                                                                                      p2 400

                                                                                                      p3 200

                                                                                                      p4 100

                                                                                                      p6 100

                                                                                                      p5 300

                                                                                                      p8 300

                                                                                                      p7 400

                                                                                                      p10 200

                                                                                                      p12 300

                                                                                                      p13 300

                                                                                                      104

                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                      ORDER BY 4 desc 8 123

                                                                                                      105

                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                      106

                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                      107

                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                      108

                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                      109

                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                      110

                                                                                                      GROUPING SETS

                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                      HAVING tot-qty gt 100

                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                      111

                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                      112

                                                                                                      ROLLUP

                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                      113

                                                                                                      ROLLUP

                                                                                                      114

                                                                                                      ROLLUP

                                                                                                      Et le CUBE

                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                      de certains nuls

                                                                                                      115

                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                      Wiley (publ)

                                                                                                      116

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                      117

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                      118

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      119

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      120

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      121

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      122

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                      123

                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                      Exeacutecution autonome

                                                                                                      124

                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                      hellip

                                                                                                      125

                                                                                                      Liste de Choix Multibase

                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                      126

                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                      148

                                                                                                      FIN

                                                                                                      149

                                                                                                      • SQL Avanceacute 2010
                                                                                                      • Quoi amp Pourquoi
                                                                                                      • Slide 3
                                                                                                      • Synonymes
                                                                                                      • Noms dattributs
                                                                                                      • Slide 6
                                                                                                      • Slide 7
                                                                                                      • Slide 8
                                                                                                      • Insertion dans une Vue
                                                                                                      • Insertion dans une Vue (2)
                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                      • MsAccess Leacutegendes
                                                                                                      • Expressions de valeur
                                                                                                      • Expressions de valeur (2)
                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                      • UNION et ORDER BY
                                                                                                      • ORDER BY et expressions de valeur
                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                      • Preacutedicat TOP
                                                                                                      • Preacutedicat TOP (2)
                                                                                                      • Clause BETWEEN
                                                                                                      • Limitations de NOT
                                                                                                      • ANY et ALL
                                                                                                      • Injection SQL
                                                                                                      • Injection SQL (2)
                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                      • Tabulations Croiseacutees
                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                      • XOR
                                                                                                      • IMP
                                                                                                      • Sous-requecirctes
                                                                                                      • Sous-requecirctes (2)
                                                                                                      • Sous-requecirctes (3)
                                                                                                      • Sous-requecirctes (4)
                                                                                                      • Sous-requecirctes (5)
                                                                                                      • Sous-requecirctes (6)
                                                                                                      • Sous-requecirctes (7)
                                                                                                      • Application aux Probabiliteacutes
                                                                                                      • Clause FROM imbriqueacutee
                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                      • Valeurs nulles
                                                                                                      • Valeurs nulles (2)
                                                                                                      • Valeurs nulles (3)
                                                                                                      • Valeurs nulles (4)
                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                      • Fonction Scalaire RND
                                                                                                      • Fonction Scalaire RND (2)
                                                                                                      • Fonctions Financiegraveres
                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                      • Fonction DDB
                                                                                                      • Fonction DDB (2)
                                                                                                      • Fonction PMT
                                                                                                      • Fonction PMT (2)
                                                                                                      • Placement agrave taux variable
                                                                                                      • GROUP BY
                                                                                                      • LIST Function
                                                                                                      • LIST Function (2)
                                                                                                      • GROUP BY avec WHERE
                                                                                                      • GROUP BY (2)
                                                                                                      • GROUP BY avec HAVING
                                                                                                      • T-GROUP BY
                                                                                                      • T-GROUP BY (2)
                                                                                                      • T-GROUP BY (3)
                                                                                                      • T-GROUP BY (4)
                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                      • Distribution
                                                                                                      • Reacutesultat
                                                                                                      • Distribution Cumulative
                                                                                                      • Reacutesultat (2)
                                                                                                      • Cateacutegorisation
                                                                                                      • Cateacutegorisation (2)
                                                                                                      • Cateacutegorisation (3)
                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                      • Tendance
                                                                                                      • Moyenne Glissante
                                                                                                      • Moyenne Glissante (2)
                                                                                                      • Moyenne Glissante (3)
                                                                                                      • Seacuteries financiegraveres
                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                      • GROUPING SETS
                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                      • Slide 112
                                                                                                      • Slide 113
                                                                                                      • Slide 114
                                                                                                      • Autres Opeacuterations Utiles
                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                      • Liste de Choix Multibase
                                                                                                      • Liste de Choix Multibase (2)
                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                      • FIN
                                                                                                      • Slide 149

                                                                                                        52

                                                                                                        Clause FROM imbriqueacutee Totaux partiels et Total Geacuteneacuteral

                                                                                                        totaux partiels et total geacuteneacuteral

                                                                                                        total_Id TotalQty

                                                                                                        s1 1300

                                                                                                        s2 300

                                                                                                        s3 400

                                                                                                        s4 400

                                                                                                        total Geacuteneacuteral

                                                                                                        2400

                                                                                                        53

                                                                                                        Valeurs nulles

                                                                                                        Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                                        En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                                        DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                                        Non WHERE HAVING GROUP BY (rel 1)

                                                                                                        Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                                        MsAccess Oui DISTINCT Autres clauses

                                                                                                        54

                                                                                                        Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                        1 x gt y est vrai ou faux

                                                                                                        2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                        DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                        SELECT FROM S WHERE CITY =Paris

                                                                                                        UNION

                                                                                                        SELECT FROM S WHERE NOT CITY = Paris

                                                                                                        est toujours pourquoi faire simpleSELECT FROM S

                                                                                                        si on peut faire compliqueacute

                                                                                                        55

                                                                                                        Valeurs nullesValeurs nulles

                                                                                                        SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                        SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                        Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                        56

                                                                                                        Valeurs nulles

                                                                                                        Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                        LOG (nul) -gt Error A voir cas par cas

                                                                                                        57

                                                                                                        Fonctions Scalaires DateTemps

                                                                                                        SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                        FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                        franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                        weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                        58

                                                                                                        Fonctions Scalaires DateTemps

                                                                                                        SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                        month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                        weekday(day(now())-1) AS [day]FROM S

                                                                                                        bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                        59

                                                                                                        Fonctions Scalaires DateTemps

                                                                                                        DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                        Interval Explanation

                                                                                                        Yyyy Year

                                                                                                        q Quarter

                                                                                                        m Month

                                                                                                        y Day of year

                                                                                                        d Day

                                                                                                        w Weekday

                                                                                                        ww Week

                                                                                                        h Hour

                                                                                                        n Minute

                                                                                                        s Second

                                                                                                        60

                                                                                                        Fonctions Scalaires DateTemps

                                                                                                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                        Test DateDiff

                                                                                                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                        61

                                                                                                        Fonctions Scalaires DateTemps

                                                                                                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                        Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                        62

                                                                                                        Fonction Scalaire RND

                                                                                                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                                                        echantillon s rank

                                                                                                        s1 502628087997437E-02

                                                                                                        s4 0518015921115875

                                                                                                        s3 075702953338623

                                                                                                        63

                                                                                                        Fonction Scalaire RND

                                                                                                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                                                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                        Votre commentaire ici

                                                                                                        64

                                                                                                        Fonctions Financiegraveres

                                                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                        65

                                                                                                        Fonctions Financiegraveres

                                                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                        66

                                                                                                        Fonction DDB

                                                                                                        insert into DDB (cost salvage life factor amortiss period)

                                                                                                        select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                        DDB(cost salvage life period factor) as amortiss period

                                                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                        67

                                                                                                        Fonction DDB

                                                                                                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                        68

                                                                                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                        nombres neacutegatifs

                                                                                                        Fonction PMT

                                                                                                        69

                                                                                                        Fonction PMT

                                                                                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                        Fonction PMT calcul dannuiteacute demprunt

                                                                                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                        preacutesentevaleur_payeacutee surprime

                                                                                                        -16049 005 20 200000 -320980 -120980

                                                                                                        70

                                                                                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                        Et les nuls que log ne supporte pas

                                                                                                        Anneacutee relative

                                                                                                        Taux

                                                                                                        1 4

                                                                                                        2 4

                                                                                                        3 3

                                                                                                        4 5

                                                                                                        5 5

                                                                                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                        71

                                                                                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                        est eacutequivalente agrave

                                                                                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                        WHERE XP = SPP) FROM SP

                                                                                                        Testez

                                                                                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                        72

                                                                                                        LIST Function La requecircte

                                                                                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                        Comme les tabulations croiseacutees

                                                                                                        ndash Mais en + simple

                                                                                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                        ndash En mono attribut (2004)

                                                                                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                        sous-formulaires

                                                                                                        73

                                                                                                        LIST Function

                                                                                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                        74

                                                                                                        GROUP BY avec WHERE

                                                                                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                        75

                                                                                                        GROUP BY

                                                                                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                        Pourquoi

                                                                                                        76

                                                                                                        GROUP BY avec HAVING

                                                                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                        77

                                                                                                        T-GROUP BY Proposeacute pour SQL

                                                                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                        Le rocircle de -join par rapport agrave equi-join

                                                                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                        78

                                                                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                        FROM SP Vrai ou Faux

                                                                                                        79

                                                                                                        T-GROUP BY

                                                                                                        Reacutesultat

                                                                                                        part avg_qty_other_parts part_avg_qty

                                                                                                        p1 250 300

                                                                                                        p2 262 250

                                                                                                        p3 245 400

                                                                                                        p4 260 250

                                                                                                        p5 260 250

                                                                                                        p6 272 100

                                                                                                        80

                                                                                                        T-GROUP BY

                                                                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                        81

                                                                                                        Rangs Non-Denses(Non Dense Ranking)

                                                                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                        s p qtyND-rank

                                                                                                        s4 p5 400 1

                                                                                                        s3 p2 400 1

                                                                                                        s1 p3 400 1

                                                                                                        s4 p4 300 4

                                                                                                        s2 p2 300 4

                                                                                                        s1 p1 300 4

                                                                                                        s4 p2 200 7

                                                                                                        s1 p4 200 7

                                                                                                        s1 p2 200 7

                                                                                                        s4 p1 200 7

                                                                                                        s1 p6 100 11

                                                                                                        s1 p5 100 11

                                                                                                        82

                                                                                                        Rangs Non-Denses(Graphique MsAccess)

                                                                                                        s p qty ND-rank

                                                                                                        s4 p5 400 1

                                                                                                        s3 p2 400 1

                                                                                                        s1 p3 400 1

                                                                                                        s4 p4 300 4

                                                                                                        s2 p2 300 4

                                                                                                        s1 p1 300 4

                                                                                                        s4 p2 200 7

                                                                                                        s1 p4 200 7

                                                                                                        s1 p2 200 7

                                                                                                        s4 p1 200 7

                                                                                                        s1 p6 100 11

                                                                                                        s1 p5 100 11

                                                                                                        83

                                                                                                        Rangs Denses(Dense Ranking)

                                                                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                        s p qtyD-rank

                                                                                                        s1 p3 400 1

                                                                                                        s3 p2 400 1

                                                                                                        s4 p5 400 1

                                                                                                        s1 p1 300 2

                                                                                                        s2 p2 300 2

                                                                                                        s4 p4 300 2

                                                                                                        s1 p4 200 3

                                                                                                        s1 p2 200 3

                                                                                                        s4 p2 200 3

                                                                                                        s4 p1 200 3

                                                                                                        s1 p6 100 4

                                                                                                        s1 p5 100 4

                                                                                                        84

                                                                                                        Rangs DensesGraphique MsAccess

                                                                                                        s p qty D-rank

                                                                                                        s1 p3 400 1

                                                                                                        s3 p2 400 1

                                                                                                        s4 p5 400 1

                                                                                                        s1 p1 300 2

                                                                                                        s2 p2 300 2

                                                                                                        s4 p4 300 2

                                                                                                        s1 p4 200 3

                                                                                                        s1 p2 200 3

                                                                                                        s4 p2 200 3

                                                                                                        s4 p1 200 3

                                                                                                        s1 p6 100 4

                                                                                                        s1 p5 100 4

                                                                                                        85

                                                                                                        Distribution

                                                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                        86

                                                                                                        Reacutesultat

                                                                                                        s Distribution

                                                                                                        s1 0419

                                                                                                        s2 0097

                                                                                                        s3 0129

                                                                                                        s4 0355

                                                                                                        87

                                                                                                        Distribution Cumulative

                                                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                        FROM SP

                                                                                                        ORDER BY SP[s]

                                                                                                        88

                                                                                                        Reacutesultat

                                                                                                        sDistribution Cumuleacutee

                                                                                                        s1 0419

                                                                                                        s2 0516

                                                                                                        s3 0645

                                                                                                        s4 1

                                                                                                        89

                                                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                        90

                                                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                        FROM S

                                                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                        s1 Smith Paris good good

                                                                                                        s2 Jones 100 london good VGood

                                                                                                        s3 Blake 30 Paris good good

                                                                                                        s4 Clark 10 london OK OK

                                                                                                        s5 Adams 30 Athens good good

                                                                                                        bull Notez le traitement du null

                                                                                                        91

                                                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                                                        FROM P where weight gt 13

                                                                                                        union

                                                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                        UNION

                                                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                                                        ORDER BY warning DESC weight DESC

                                                                                                        pname weight Warning

                                                                                                        cam 19 Very Heavy

                                                                                                        cog 19 Very Heavy

                                                                                                        bolt 17 Very Heavy

                                                                                                        nut 14 Very Heavy

                                                                                                        screw 14 Very Heavy

                                                                                                        nut 14 Quite Heavy

                                                                                                        screw 14 Quite Heavy

                                                                                                        screw 12 Quite Heavy

                                                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                        92

                                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                        SP

                                                                                                        s p qtyQty1

                                                                                                        s1 p1 300 400

                                                                                                        s1 p2 200

                                                                                                        s1 p3 400 600

                                                                                                        s1 p4 200 300

                                                                                                        s1 p5 100

                                                                                                        s1 p6 100 200

                                                                                                        s2 p2 300 500

                                                                                                        s3 p2 400

                                                                                                        s4 p1 200 100

                                                                                                        s4 p2 200

                                                                                                        s4 p4 300

                                                                                                        s4 p5 400

                                                                                                        93

                                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                        SP

                                                                                                        s p qtyQty1

                                                                                                        s1 p1 300 400

                                                                                                        s1 p2 200

                                                                                                        s1 p3 400 600

                                                                                                        s1 p4 200 300

                                                                                                        s1 p5 100

                                                                                                        s1 p6 100 200

                                                                                                        s2 p2 300 500

                                                                                                        s3 p2 400

                                                                                                        s4 p1 200 100

                                                                                                        s4 p2 200

                                                                                                        s4 p4 300

                                                                                                        s4 p5 400

                                                                                                        qty for partpredicted or

                                                                                                        unknown Qty1

                                                                                                        100 p5

                                                                                                        100 predicted value 200

                                                                                                        200 p2

                                                                                                        200 predicted value 200

                                                                                                        300 p4

                                                                                                        300 predicted value 450

                                                                                                        400 p2

                                                                                                        400 p5

                                                                                                        400 predicted value 600

                                                                                                        94

                                                                                                        Tendance

                                                                                                        qty Qty1

                                                                                                        100 200

                                                                                                        200 300

                                                                                                        300 400

                                                                                                        400 600

                                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                        Graph 3D avec Qty en abscisses

                                                                                                        95

                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                        30102008 120 27102008 4

                                                                                                        25102008 131 22102008 4

                                                                                                        23102008 127 20102008 4

                                                                                                        17102008 269 14102008 4

                                                                                                        15102008 60 12102008 4

                                                                                                        11102008 295 08102008 4

                                                                                                        09102008 340 06102008 4

                                                                                                        08102008 324 05102008 4

                                                                                                        06102008 315 03102008 4

                                                                                                        96

                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                        Graphique avec une info-bulle

                                                                                                        97

                                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                        glissantes

                                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                                        bull MAVG

                                                                                                        bull MSUM

                                                                                                        bull MDIFF

                                                                                                        bull Voir Teradata + loin

                                                                                                        98

                                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                        99

                                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                                        100

                                                                                                        Seacuteries financiegraveres

                                                                                                        capital taux nval apregraves n ans

                                                                                                        taux1val1 apregraves n ans

                                                                                                        GainAbs GainRel

                                                                                                        100 005 1 105 006 106 1 1

                                                                                                        100 005 2 110 006 112 2 2

                                                                                                        100 005 3 115 006 119 4 4

                                                                                                        100 005 4 121 006 126 5 5

                                                                                                        100 005 5 127 006 133 6 6

                                                                                                        100 005 6 134 006 141 7 7

                                                                                                        100 005 7 140 006 150 10 10

                                                                                                        100 005 8 147 006 159 12 12

                                                                                                        100 005 9 155 006 168 13 13

                                                                                                        100 005 10 162 006 179 17 17

                                                                                                        100 005 11 171 006 189 18 18

                                                                                                        100 005 12 179 006 201 22 22

                                                                                                        100 005 13 188 006 213 25 25

                                                                                                        100 005 14 197 006 226 29 29

                                                                                                        100 005 15 207 006 239 32 32

                                                                                                        100 005 16 218 006 254 36 36

                                                                                                        100 005 17 229 006 269 40 40

                                                                                                        100 005 18 240 006 285 45 45

                                                                                                        100 005 19 252 006 302 50 50

                                                                                                        100 005 20 265 006 320 55 55

                                                                                                        101

                                                                                                        Seacuteries financiegraveres

                                                                                                        102

                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                        financiers de la table Produits

                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                        bull En ordre descendant de prix

                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                        bull Plusieurs actionshellip

                                                                                                        103

                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                        P prix

                                                                                                        p3 200

                                                                                                        p1 200

                                                                                                        p2 400

                                                                                                        p3 200

                                                                                                        p4 100

                                                                                                        p6 100

                                                                                                        p5 300

                                                                                                        p8 300

                                                                                                        p7 400

                                                                                                        p10 200

                                                                                                        p12 300

                                                                                                        p13 300

                                                                                                        104

                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                        ORDER BY 4 desc 8 123

                                                                                                        105

                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                        106

                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                        107

                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                        108

                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                        109

                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                        110

                                                                                                        GROUPING SETS

                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                        HAVING tot-qty gt 100

                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                        111

                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                        112

                                                                                                        ROLLUP

                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                        113

                                                                                                        ROLLUP

                                                                                                        114

                                                                                                        ROLLUP

                                                                                                        Et le CUBE

                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                        de certains nuls

                                                                                                        115

                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                        Wiley (publ)

                                                                                                        116

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                        117

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                        118

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        119

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        120

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        121

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        122

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                        123

                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                        Exeacutecution autonome

                                                                                                        124

                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                        hellip

                                                                                                        125

                                                                                                        Liste de Choix Multibase

                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                        126

                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                        148

                                                                                                        FIN

                                                                                                        149

                                                                                                        • SQL Avanceacute 2010
                                                                                                        • Quoi amp Pourquoi
                                                                                                        • Slide 3
                                                                                                        • Synonymes
                                                                                                        • Noms dattributs
                                                                                                        • Slide 6
                                                                                                        • Slide 7
                                                                                                        • Slide 8
                                                                                                        • Insertion dans une Vue
                                                                                                        • Insertion dans une Vue (2)
                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                        • MsAccess Leacutegendes
                                                                                                        • Expressions de valeur
                                                                                                        • Expressions de valeur (2)
                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                        • UNION et ORDER BY
                                                                                                        • ORDER BY et expressions de valeur
                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                        • Preacutedicat TOP
                                                                                                        • Preacutedicat TOP (2)
                                                                                                        • Clause BETWEEN
                                                                                                        • Limitations de NOT
                                                                                                        • ANY et ALL
                                                                                                        • Injection SQL
                                                                                                        • Injection SQL (2)
                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                        • Tabulations Croiseacutees
                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                        • XOR
                                                                                                        • IMP
                                                                                                        • Sous-requecirctes
                                                                                                        • Sous-requecirctes (2)
                                                                                                        • Sous-requecirctes (3)
                                                                                                        • Sous-requecirctes (4)
                                                                                                        • Sous-requecirctes (5)
                                                                                                        • Sous-requecirctes (6)
                                                                                                        • Sous-requecirctes (7)
                                                                                                        • Application aux Probabiliteacutes
                                                                                                        • Clause FROM imbriqueacutee
                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                        • Valeurs nulles
                                                                                                        • Valeurs nulles (2)
                                                                                                        • Valeurs nulles (3)
                                                                                                        • Valeurs nulles (4)
                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                        • Fonction Scalaire RND
                                                                                                        • Fonction Scalaire RND (2)
                                                                                                        • Fonctions Financiegraveres
                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                        • Fonction DDB
                                                                                                        • Fonction DDB (2)
                                                                                                        • Fonction PMT
                                                                                                        • Fonction PMT (2)
                                                                                                        • Placement agrave taux variable
                                                                                                        • GROUP BY
                                                                                                        • LIST Function
                                                                                                        • LIST Function (2)
                                                                                                        • GROUP BY avec WHERE
                                                                                                        • GROUP BY (2)
                                                                                                        • GROUP BY avec HAVING
                                                                                                        • T-GROUP BY
                                                                                                        • T-GROUP BY (2)
                                                                                                        • T-GROUP BY (3)
                                                                                                        • T-GROUP BY (4)
                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                        • Distribution
                                                                                                        • Reacutesultat
                                                                                                        • Distribution Cumulative
                                                                                                        • Reacutesultat (2)
                                                                                                        • Cateacutegorisation
                                                                                                        • Cateacutegorisation (2)
                                                                                                        • Cateacutegorisation (3)
                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                        • Tendance
                                                                                                        • Moyenne Glissante
                                                                                                        • Moyenne Glissante (2)
                                                                                                        • Moyenne Glissante (3)
                                                                                                        • Seacuteries financiegraveres
                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                        • GROUPING SETS
                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                        • Slide 112
                                                                                                        • Slide 113
                                                                                                        • Slide 114
                                                                                                        • Autres Opeacuterations Utiles
                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                        • Liste de Choix Multibase
                                                                                                        • Liste de Choix Multibase (2)
                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                        • FIN
                                                                                                        • Slide 149

                                                                                                          53

                                                                                                          Valeurs nulles

                                                                                                          Si le SGBD eacutevalue x = y et trouve xy nuls alors lexpression est vraie ou fausse

                                                                                                          En dautres termes est-ce que deux nuls peuvent ecirctre eacutegaux

                                                                                                          DB2 Oui UNIQUE DISTINCT ORDER BY GROUP BY (rel 2)

                                                                                                          Non WHERE HAVING GROUP BY (rel 1)

                                                                                                          Standard Oui DISTINCT ORDER BY GROUP BY (lev 2)Non WHERE HAVING GROUP BY (lev 1)Undefined UNIQUE

                                                                                                          MsAccess Oui DISTINCT Autres clauses

                                                                                                          54

                                                                                                          Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                          1 x gt y est vrai ou faux

                                                                                                          2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                          DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                          SELECT FROM S WHERE CITY =Paris

                                                                                                          UNION

                                                                                                          SELECT FROM S WHERE NOT CITY = Paris

                                                                                                          est toujours pourquoi faire simpleSELECT FROM S

                                                                                                          si on peut faire compliqueacute

                                                                                                          55

                                                                                                          Valeurs nullesValeurs nulles

                                                                                                          SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                          SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                          Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                          56

                                                                                                          Valeurs nulles

                                                                                                          Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                          LOG (nul) -gt Error A voir cas par cas

                                                                                                          57

                                                                                                          Fonctions Scalaires DateTemps

                                                                                                          SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                          FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                          franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                          weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                          58

                                                                                                          Fonctions Scalaires DateTemps

                                                                                                          SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                          month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                          weekday(day(now())-1) AS [day]FROM S

                                                                                                          bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                          59

                                                                                                          Fonctions Scalaires DateTemps

                                                                                                          DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                          Interval Explanation

                                                                                                          Yyyy Year

                                                                                                          q Quarter

                                                                                                          m Month

                                                                                                          y Day of year

                                                                                                          d Day

                                                                                                          w Weekday

                                                                                                          ww Week

                                                                                                          h Hour

                                                                                                          n Minute

                                                                                                          s Second

                                                                                                          60

                                                                                                          Fonctions Scalaires DateTemps

                                                                                                          SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                          Test DateDiff

                                                                                                          now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                          bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                          61

                                                                                                          Fonctions Scalaires DateTemps

                                                                                                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                          Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                          62

                                                                                                          Fonction Scalaire RND

                                                                                                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                                                          echantillon s rank

                                                                                                          s1 502628087997437E-02

                                                                                                          s4 0518015921115875

                                                                                                          s3 075702953338623

                                                                                                          63

                                                                                                          Fonction Scalaire RND

                                                                                                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                                                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                          Votre commentaire ici

                                                                                                          64

                                                                                                          Fonctions Financiegraveres

                                                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                          65

                                                                                                          Fonctions Financiegraveres

                                                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                          66

                                                                                                          Fonction DDB

                                                                                                          insert into DDB (cost salvage life factor amortiss period)

                                                                                                          select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                          DDB(cost salvage life period factor) as amortiss period

                                                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                          67

                                                                                                          Fonction DDB

                                                                                                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                          68

                                                                                                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                          nombres neacutegatifs

                                                                                                          Fonction PMT

                                                                                                          69

                                                                                                          Fonction PMT

                                                                                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                          Fonction PMT calcul dannuiteacute demprunt

                                                                                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                          preacutesentevaleur_payeacutee surprime

                                                                                                          -16049 005 20 200000 -320980 -120980

                                                                                                          70

                                                                                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                          Et les nuls que log ne supporte pas

                                                                                                          Anneacutee relative

                                                                                                          Taux

                                                                                                          1 4

                                                                                                          2 4

                                                                                                          3 3

                                                                                                          4 5

                                                                                                          5 5

                                                                                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                          71

                                                                                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                          est eacutequivalente agrave

                                                                                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                          WHERE XP = SPP) FROM SP

                                                                                                          Testez

                                                                                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                          72

                                                                                                          LIST Function La requecircte

                                                                                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                          Comme les tabulations croiseacutees

                                                                                                          ndash Mais en + simple

                                                                                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                          ndash En mono attribut (2004)

                                                                                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                          sous-formulaires

                                                                                                          73

                                                                                                          LIST Function

                                                                                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                          74

                                                                                                          GROUP BY avec WHERE

                                                                                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                          75

                                                                                                          GROUP BY

                                                                                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                          Pourquoi

                                                                                                          76

                                                                                                          GROUP BY avec HAVING

                                                                                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                          77

                                                                                                          T-GROUP BY Proposeacute pour SQL

                                                                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                          Le rocircle de -join par rapport agrave equi-join

                                                                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                          78

                                                                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                          FROM SP Vrai ou Faux

                                                                                                          79

                                                                                                          T-GROUP BY

                                                                                                          Reacutesultat

                                                                                                          part avg_qty_other_parts part_avg_qty

                                                                                                          p1 250 300

                                                                                                          p2 262 250

                                                                                                          p3 245 400

                                                                                                          p4 260 250

                                                                                                          p5 260 250

                                                                                                          p6 272 100

                                                                                                          80

                                                                                                          T-GROUP BY

                                                                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                          81

                                                                                                          Rangs Non-Denses(Non Dense Ranking)

                                                                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                          s p qtyND-rank

                                                                                                          s4 p5 400 1

                                                                                                          s3 p2 400 1

                                                                                                          s1 p3 400 1

                                                                                                          s4 p4 300 4

                                                                                                          s2 p2 300 4

                                                                                                          s1 p1 300 4

                                                                                                          s4 p2 200 7

                                                                                                          s1 p4 200 7

                                                                                                          s1 p2 200 7

                                                                                                          s4 p1 200 7

                                                                                                          s1 p6 100 11

                                                                                                          s1 p5 100 11

                                                                                                          82

                                                                                                          Rangs Non-Denses(Graphique MsAccess)

                                                                                                          s p qty ND-rank

                                                                                                          s4 p5 400 1

                                                                                                          s3 p2 400 1

                                                                                                          s1 p3 400 1

                                                                                                          s4 p4 300 4

                                                                                                          s2 p2 300 4

                                                                                                          s1 p1 300 4

                                                                                                          s4 p2 200 7

                                                                                                          s1 p4 200 7

                                                                                                          s1 p2 200 7

                                                                                                          s4 p1 200 7

                                                                                                          s1 p6 100 11

                                                                                                          s1 p5 100 11

                                                                                                          83

                                                                                                          Rangs Denses(Dense Ranking)

                                                                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                          s p qtyD-rank

                                                                                                          s1 p3 400 1

                                                                                                          s3 p2 400 1

                                                                                                          s4 p5 400 1

                                                                                                          s1 p1 300 2

                                                                                                          s2 p2 300 2

                                                                                                          s4 p4 300 2

                                                                                                          s1 p4 200 3

                                                                                                          s1 p2 200 3

                                                                                                          s4 p2 200 3

                                                                                                          s4 p1 200 3

                                                                                                          s1 p6 100 4

                                                                                                          s1 p5 100 4

                                                                                                          84

                                                                                                          Rangs DensesGraphique MsAccess

                                                                                                          s p qty D-rank

                                                                                                          s1 p3 400 1

                                                                                                          s3 p2 400 1

                                                                                                          s4 p5 400 1

                                                                                                          s1 p1 300 2

                                                                                                          s2 p2 300 2

                                                                                                          s4 p4 300 2

                                                                                                          s1 p4 200 3

                                                                                                          s1 p2 200 3

                                                                                                          s4 p2 200 3

                                                                                                          s4 p1 200 3

                                                                                                          s1 p6 100 4

                                                                                                          s1 p5 100 4

                                                                                                          85

                                                                                                          Distribution

                                                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                          86

                                                                                                          Reacutesultat

                                                                                                          s Distribution

                                                                                                          s1 0419

                                                                                                          s2 0097

                                                                                                          s3 0129

                                                                                                          s4 0355

                                                                                                          87

                                                                                                          Distribution Cumulative

                                                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                          FROM SP

                                                                                                          ORDER BY SP[s]

                                                                                                          88

                                                                                                          Reacutesultat

                                                                                                          sDistribution Cumuleacutee

                                                                                                          s1 0419

                                                                                                          s2 0516

                                                                                                          s3 0645

                                                                                                          s4 1

                                                                                                          89

                                                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                          90

                                                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                          FROM S

                                                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                          s1 Smith Paris good good

                                                                                                          s2 Jones 100 london good VGood

                                                                                                          s3 Blake 30 Paris good good

                                                                                                          s4 Clark 10 london OK OK

                                                                                                          s5 Adams 30 Athens good good

                                                                                                          bull Notez le traitement du null

                                                                                                          91

                                                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                                                          FROM P where weight gt 13

                                                                                                          union

                                                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                          UNION

                                                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                                                          ORDER BY warning DESC weight DESC

                                                                                                          pname weight Warning

                                                                                                          cam 19 Very Heavy

                                                                                                          cog 19 Very Heavy

                                                                                                          bolt 17 Very Heavy

                                                                                                          nut 14 Very Heavy

                                                                                                          screw 14 Very Heavy

                                                                                                          nut 14 Quite Heavy

                                                                                                          screw 14 Quite Heavy

                                                                                                          screw 12 Quite Heavy

                                                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                          92

                                                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                                                          On considegravere AVG(Qty1) pour Qty

                                                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                          SP

                                                                                                          s p qtyQty1

                                                                                                          s1 p1 300 400

                                                                                                          s1 p2 200

                                                                                                          s1 p3 400 600

                                                                                                          s1 p4 200 300

                                                                                                          s1 p5 100

                                                                                                          s1 p6 100 200

                                                                                                          s2 p2 300 500

                                                                                                          s3 p2 400

                                                                                                          s4 p1 200 100

                                                                                                          s4 p2 200

                                                                                                          s4 p4 300

                                                                                                          s4 p5 400

                                                                                                          93

                                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                          SP

                                                                                                          s p qtyQty1

                                                                                                          s1 p1 300 400

                                                                                                          s1 p2 200

                                                                                                          s1 p3 400 600

                                                                                                          s1 p4 200 300

                                                                                                          s1 p5 100

                                                                                                          s1 p6 100 200

                                                                                                          s2 p2 300 500

                                                                                                          s3 p2 400

                                                                                                          s4 p1 200 100

                                                                                                          s4 p2 200

                                                                                                          s4 p4 300

                                                                                                          s4 p5 400

                                                                                                          qty for partpredicted or

                                                                                                          unknown Qty1

                                                                                                          100 p5

                                                                                                          100 predicted value 200

                                                                                                          200 p2

                                                                                                          200 predicted value 200

                                                                                                          300 p4

                                                                                                          300 predicted value 450

                                                                                                          400 p2

                                                                                                          400 p5

                                                                                                          400 predicted value 600

                                                                                                          94

                                                                                                          Tendance

                                                                                                          qty Qty1

                                                                                                          100 200

                                                                                                          200 300

                                                                                                          300 400

                                                                                                          400 600

                                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                          Graph 3D avec Qty en abscisses

                                                                                                          95

                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                          30102008 120 27102008 4

                                                                                                          25102008 131 22102008 4

                                                                                                          23102008 127 20102008 4

                                                                                                          17102008 269 14102008 4

                                                                                                          15102008 60 12102008 4

                                                                                                          11102008 295 08102008 4

                                                                                                          09102008 340 06102008 4

                                                                                                          08102008 324 05102008 4

                                                                                                          06102008 315 03102008 4

                                                                                                          96

                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                          Graphique avec une info-bulle

                                                                                                          97

                                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                          glissantes

                                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                                          bull MAVG

                                                                                                          bull MSUM

                                                                                                          bull MDIFF

                                                                                                          bull Voir Teradata + loin

                                                                                                          98

                                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                          99

                                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                                          100

                                                                                                          Seacuteries financiegraveres

                                                                                                          capital taux nval apregraves n ans

                                                                                                          taux1val1 apregraves n ans

                                                                                                          GainAbs GainRel

                                                                                                          100 005 1 105 006 106 1 1

                                                                                                          100 005 2 110 006 112 2 2

                                                                                                          100 005 3 115 006 119 4 4

                                                                                                          100 005 4 121 006 126 5 5

                                                                                                          100 005 5 127 006 133 6 6

                                                                                                          100 005 6 134 006 141 7 7

                                                                                                          100 005 7 140 006 150 10 10

                                                                                                          100 005 8 147 006 159 12 12

                                                                                                          100 005 9 155 006 168 13 13

                                                                                                          100 005 10 162 006 179 17 17

                                                                                                          100 005 11 171 006 189 18 18

                                                                                                          100 005 12 179 006 201 22 22

                                                                                                          100 005 13 188 006 213 25 25

                                                                                                          100 005 14 197 006 226 29 29

                                                                                                          100 005 15 207 006 239 32 32

                                                                                                          100 005 16 218 006 254 36 36

                                                                                                          100 005 17 229 006 269 40 40

                                                                                                          100 005 18 240 006 285 45 45

                                                                                                          100 005 19 252 006 302 50 50

                                                                                                          100 005 20 265 006 320 55 55

                                                                                                          101

                                                                                                          Seacuteries financiegraveres

                                                                                                          102

                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                          financiers de la table Produits

                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                          bull En ordre descendant de prix

                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                          bull Plusieurs actionshellip

                                                                                                          103

                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                          P prix

                                                                                                          p3 200

                                                                                                          p1 200

                                                                                                          p2 400

                                                                                                          p3 200

                                                                                                          p4 100

                                                                                                          p6 100

                                                                                                          p5 300

                                                                                                          p8 300

                                                                                                          p7 400

                                                                                                          p10 200

                                                                                                          p12 300

                                                                                                          p13 300

                                                                                                          104

                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                          ORDER BY 4 desc 8 123

                                                                                                          105

                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                          106

                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                          107

                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                          108

                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                          109

                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                          110

                                                                                                          GROUPING SETS

                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                          HAVING tot-qty gt 100

                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                          111

                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                          112

                                                                                                          ROLLUP

                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                          113

                                                                                                          ROLLUP

                                                                                                          114

                                                                                                          ROLLUP

                                                                                                          Et le CUBE

                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                          de certains nuls

                                                                                                          115

                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                          Wiley (publ)

                                                                                                          116

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                          117

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                          118

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          119

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          120

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          121

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          122

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                          123

                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                          Exeacutecution autonome

                                                                                                          124

                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                          hellip

                                                                                                          125

                                                                                                          Liste de Choix Multibase

                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                          126

                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                          148

                                                                                                          FIN

                                                                                                          149

                                                                                                          • SQL Avanceacute 2010
                                                                                                          • Quoi amp Pourquoi
                                                                                                          • Slide 3
                                                                                                          • Synonymes
                                                                                                          • Noms dattributs
                                                                                                          • Slide 6
                                                                                                          • Slide 7
                                                                                                          • Slide 8
                                                                                                          • Insertion dans une Vue
                                                                                                          • Insertion dans une Vue (2)
                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                          • MsAccess Leacutegendes
                                                                                                          • Expressions de valeur
                                                                                                          • Expressions de valeur (2)
                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                          • UNION et ORDER BY
                                                                                                          • ORDER BY et expressions de valeur
                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                          • Preacutedicat TOP
                                                                                                          • Preacutedicat TOP (2)
                                                                                                          • Clause BETWEEN
                                                                                                          • Limitations de NOT
                                                                                                          • ANY et ALL
                                                                                                          • Injection SQL
                                                                                                          • Injection SQL (2)
                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                          • Tabulations Croiseacutees
                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                          • XOR
                                                                                                          • IMP
                                                                                                          • Sous-requecirctes
                                                                                                          • Sous-requecirctes (2)
                                                                                                          • Sous-requecirctes (3)
                                                                                                          • Sous-requecirctes (4)
                                                                                                          • Sous-requecirctes (5)
                                                                                                          • Sous-requecirctes (6)
                                                                                                          • Sous-requecirctes (7)
                                                                                                          • Application aux Probabiliteacutes
                                                                                                          • Clause FROM imbriqueacutee
                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                          • Valeurs nulles
                                                                                                          • Valeurs nulles (2)
                                                                                                          • Valeurs nulles (3)
                                                                                                          • Valeurs nulles (4)
                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                          • Fonction Scalaire RND
                                                                                                          • Fonction Scalaire RND (2)
                                                                                                          • Fonctions Financiegraveres
                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                          • Fonction DDB
                                                                                                          • Fonction DDB (2)
                                                                                                          • Fonction PMT
                                                                                                          • Fonction PMT (2)
                                                                                                          • Placement agrave taux variable
                                                                                                          • GROUP BY
                                                                                                          • LIST Function
                                                                                                          • LIST Function (2)
                                                                                                          • GROUP BY avec WHERE
                                                                                                          • GROUP BY (2)
                                                                                                          • GROUP BY avec HAVING
                                                                                                          • T-GROUP BY
                                                                                                          • T-GROUP BY (2)
                                                                                                          • T-GROUP BY (3)
                                                                                                          • T-GROUP BY (4)
                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                          • Distribution
                                                                                                          • Reacutesultat
                                                                                                          • Distribution Cumulative
                                                                                                          • Reacutesultat (2)
                                                                                                          • Cateacutegorisation
                                                                                                          • Cateacutegorisation (2)
                                                                                                          • Cateacutegorisation (3)
                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                          • Tendance
                                                                                                          • Moyenne Glissante
                                                                                                          • Moyenne Glissante (2)
                                                                                                          • Moyenne Glissante (3)
                                                                                                          • Seacuteries financiegraveres
                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                          • GROUPING SETS
                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                          • Slide 112
                                                                                                          • Slide 113
                                                                                                          • Slide 114
                                                                                                          • Autres Opeacuterations Utiles
                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                          • Liste de Choix Multibase
                                                                                                          • Liste de Choix Multibase (2)
                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                          • FIN
                                                                                                          • Slide 149

                                                                                                            54

                                                                                                            Valeurs nulles Si x est nul et y nrsquoest pas alors

                                                                                                            1 x gt y est vrai ou faux

                                                                                                            2 x lt y est vrai ou faux ndash ex pour eacutevaluer ORDER BY

                                                                                                            DB2 oui pour (1) MsAccess Standard oui pour (1) oui pour (2) selon impleacutementation Est-il vrai que

                                                                                                            SELECT FROM S WHERE CITY =Paris

                                                                                                            UNION

                                                                                                            SELECT FROM S WHERE NOT CITY = Paris

                                                                                                            est toujours pourquoi faire simpleSELECT FROM S

                                                                                                            si on peut faire compliqueacute

                                                                                                            55

                                                                                                            Valeurs nullesValeurs nulles

                                                                                                            SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                            SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                            Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                            56

                                                                                                            Valeurs nulles

                                                                                                            Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                            LOG (nul) -gt Error A voir cas par cas

                                                                                                            57

                                                                                                            Fonctions Scalaires DateTemps

                                                                                                            SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                            FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                            franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                            weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                            58

                                                                                                            Fonctions Scalaires DateTemps

                                                                                                            SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                            month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                            weekday(day(now())-1) AS [day]FROM S

                                                                                                            bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                            59

                                                                                                            Fonctions Scalaires DateTemps

                                                                                                            DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                            Interval Explanation

                                                                                                            Yyyy Year

                                                                                                            q Quarter

                                                                                                            m Month

                                                                                                            y Day of year

                                                                                                            d Day

                                                                                                            w Weekday

                                                                                                            ww Week

                                                                                                            h Hour

                                                                                                            n Minute

                                                                                                            s Second

                                                                                                            60

                                                                                                            Fonctions Scalaires DateTemps

                                                                                                            SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                            Test DateDiff

                                                                                                            now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                            bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                            61

                                                                                                            Fonctions Scalaires DateTemps

                                                                                                            bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                            Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                            hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                            drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                            62

                                                                                                            Fonction Scalaire RND

                                                                                                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                                                            echantillon s rank

                                                                                                            s1 502628087997437E-02

                                                                                                            s4 0518015921115875

                                                                                                            s3 075702953338623

                                                                                                            63

                                                                                                            Fonction Scalaire RND

                                                                                                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                                                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                            Votre commentaire ici

                                                                                                            64

                                                                                                            Fonctions Financiegraveres

                                                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                            65

                                                                                                            Fonctions Financiegraveres

                                                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                            66

                                                                                                            Fonction DDB

                                                                                                            insert into DDB (cost salvage life factor amortiss period)

                                                                                                            select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                            DDB(cost salvage life period factor) as amortiss period

                                                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                            67

                                                                                                            Fonction DDB

                                                                                                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                            68

                                                                                                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                            nombres neacutegatifs

                                                                                                            Fonction PMT

                                                                                                            69

                                                                                                            Fonction PMT

                                                                                                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                            Fonction PMT calcul dannuiteacute demprunt

                                                                                                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                            preacutesentevaleur_payeacutee surprime

                                                                                                            -16049 005 20 200000 -320980 -120980

                                                                                                            70

                                                                                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                            Et les nuls que log ne supporte pas

                                                                                                            Anneacutee relative

                                                                                                            Taux

                                                                                                            1 4

                                                                                                            2 4

                                                                                                            3 3

                                                                                                            4 5

                                                                                                            5 5

                                                                                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                            71

                                                                                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                            est eacutequivalente agrave

                                                                                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                            WHERE XP = SPP) FROM SP

                                                                                                            Testez

                                                                                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                            72

                                                                                                            LIST Function La requecircte

                                                                                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                            Comme les tabulations croiseacutees

                                                                                                            ndash Mais en + simple

                                                                                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                            ndash En mono attribut (2004)

                                                                                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                            sous-formulaires

                                                                                                            73

                                                                                                            LIST Function

                                                                                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                            74

                                                                                                            GROUP BY avec WHERE

                                                                                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                            75

                                                                                                            GROUP BY

                                                                                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                            Pourquoi

                                                                                                            76

                                                                                                            GROUP BY avec HAVING

                                                                                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                            77

                                                                                                            T-GROUP BY Proposeacute pour SQL

                                                                                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                            Le rocircle de -join par rapport agrave equi-join

                                                                                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                            INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                            78

                                                                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                            FROM SP Vrai ou Faux

                                                                                                            79

                                                                                                            T-GROUP BY

                                                                                                            Reacutesultat

                                                                                                            part avg_qty_other_parts part_avg_qty

                                                                                                            p1 250 300

                                                                                                            p2 262 250

                                                                                                            p3 245 400

                                                                                                            p4 260 250

                                                                                                            p5 260 250

                                                                                                            p6 272 100

                                                                                                            80

                                                                                                            T-GROUP BY

                                                                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                            81

                                                                                                            Rangs Non-Denses(Non Dense Ranking)

                                                                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                            s p qtyND-rank

                                                                                                            s4 p5 400 1

                                                                                                            s3 p2 400 1

                                                                                                            s1 p3 400 1

                                                                                                            s4 p4 300 4

                                                                                                            s2 p2 300 4

                                                                                                            s1 p1 300 4

                                                                                                            s4 p2 200 7

                                                                                                            s1 p4 200 7

                                                                                                            s1 p2 200 7

                                                                                                            s4 p1 200 7

                                                                                                            s1 p6 100 11

                                                                                                            s1 p5 100 11

                                                                                                            82

                                                                                                            Rangs Non-Denses(Graphique MsAccess)

                                                                                                            s p qty ND-rank

                                                                                                            s4 p5 400 1

                                                                                                            s3 p2 400 1

                                                                                                            s1 p3 400 1

                                                                                                            s4 p4 300 4

                                                                                                            s2 p2 300 4

                                                                                                            s1 p1 300 4

                                                                                                            s4 p2 200 7

                                                                                                            s1 p4 200 7

                                                                                                            s1 p2 200 7

                                                                                                            s4 p1 200 7

                                                                                                            s1 p6 100 11

                                                                                                            s1 p5 100 11

                                                                                                            83

                                                                                                            Rangs Denses(Dense Ranking)

                                                                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                            s p qtyD-rank

                                                                                                            s1 p3 400 1

                                                                                                            s3 p2 400 1

                                                                                                            s4 p5 400 1

                                                                                                            s1 p1 300 2

                                                                                                            s2 p2 300 2

                                                                                                            s4 p4 300 2

                                                                                                            s1 p4 200 3

                                                                                                            s1 p2 200 3

                                                                                                            s4 p2 200 3

                                                                                                            s4 p1 200 3

                                                                                                            s1 p6 100 4

                                                                                                            s1 p5 100 4

                                                                                                            84

                                                                                                            Rangs DensesGraphique MsAccess

                                                                                                            s p qty D-rank

                                                                                                            s1 p3 400 1

                                                                                                            s3 p2 400 1

                                                                                                            s4 p5 400 1

                                                                                                            s1 p1 300 2

                                                                                                            s2 p2 300 2

                                                                                                            s4 p4 300 2

                                                                                                            s1 p4 200 3

                                                                                                            s1 p2 200 3

                                                                                                            s4 p2 200 3

                                                                                                            s4 p1 200 3

                                                                                                            s1 p6 100 4

                                                                                                            s1 p5 100 4

                                                                                                            85

                                                                                                            Distribution

                                                                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                            86

                                                                                                            Reacutesultat

                                                                                                            s Distribution

                                                                                                            s1 0419

                                                                                                            s2 0097

                                                                                                            s3 0129

                                                                                                            s4 0355

                                                                                                            87

                                                                                                            Distribution Cumulative

                                                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                            FROM SP

                                                                                                            ORDER BY SP[s]

                                                                                                            88

                                                                                                            Reacutesultat

                                                                                                            sDistribution Cumuleacutee

                                                                                                            s1 0419

                                                                                                            s2 0516

                                                                                                            s3 0645

                                                                                                            s4 1

                                                                                                            89

                                                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                            90

                                                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                            FROM S

                                                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                            s1 Smith Paris good good

                                                                                                            s2 Jones 100 london good VGood

                                                                                                            s3 Blake 30 Paris good good

                                                                                                            s4 Clark 10 london OK OK

                                                                                                            s5 Adams 30 Athens good good

                                                                                                            bull Notez le traitement du null

                                                                                                            91

                                                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                                                            FROM P where weight gt 13

                                                                                                            union

                                                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                            UNION

                                                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                                                            ORDER BY warning DESC weight DESC

                                                                                                            pname weight Warning

                                                                                                            cam 19 Very Heavy

                                                                                                            cog 19 Very Heavy

                                                                                                            bolt 17 Very Heavy

                                                                                                            nut 14 Very Heavy

                                                                                                            screw 14 Very Heavy

                                                                                                            nut 14 Quite Heavy

                                                                                                            screw 14 Quite Heavy

                                                                                                            screw 12 Quite Heavy

                                                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                            92

                                                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                                                            On considegravere AVG(Qty1) pour Qty

                                                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                            SP

                                                                                                            s p qtyQty1

                                                                                                            s1 p1 300 400

                                                                                                            s1 p2 200

                                                                                                            s1 p3 400 600

                                                                                                            s1 p4 200 300

                                                                                                            s1 p5 100

                                                                                                            s1 p6 100 200

                                                                                                            s2 p2 300 500

                                                                                                            s3 p2 400

                                                                                                            s4 p1 200 100

                                                                                                            s4 p2 200

                                                                                                            s4 p4 300

                                                                                                            s4 p5 400

                                                                                                            93

                                                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                            SP

                                                                                                            s p qtyQty1

                                                                                                            s1 p1 300 400

                                                                                                            s1 p2 200

                                                                                                            s1 p3 400 600

                                                                                                            s1 p4 200 300

                                                                                                            s1 p5 100

                                                                                                            s1 p6 100 200

                                                                                                            s2 p2 300 500

                                                                                                            s3 p2 400

                                                                                                            s4 p1 200 100

                                                                                                            s4 p2 200

                                                                                                            s4 p4 300

                                                                                                            s4 p5 400

                                                                                                            qty for partpredicted or

                                                                                                            unknown Qty1

                                                                                                            100 p5

                                                                                                            100 predicted value 200

                                                                                                            200 p2

                                                                                                            200 predicted value 200

                                                                                                            300 p4

                                                                                                            300 predicted value 450

                                                                                                            400 p2

                                                                                                            400 p5

                                                                                                            400 predicted value 600

                                                                                                            94

                                                                                                            Tendance

                                                                                                            qty Qty1

                                                                                                            100 200

                                                                                                            200 300

                                                                                                            300 400

                                                                                                            400 600

                                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                            Graph 3D avec Qty en abscisses

                                                                                                            95

                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                            30102008 120 27102008 4

                                                                                                            25102008 131 22102008 4

                                                                                                            23102008 127 20102008 4

                                                                                                            17102008 269 14102008 4

                                                                                                            15102008 60 12102008 4

                                                                                                            11102008 295 08102008 4

                                                                                                            09102008 340 06102008 4

                                                                                                            08102008 324 05102008 4

                                                                                                            06102008 315 03102008 4

                                                                                                            96

                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                            Graphique avec une info-bulle

                                                                                                            97

                                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                            glissantes

                                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                                            bull MAVG

                                                                                                            bull MSUM

                                                                                                            bull MDIFF

                                                                                                            bull Voir Teradata + loin

                                                                                                            98

                                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                            99

                                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                                            100

                                                                                                            Seacuteries financiegraveres

                                                                                                            capital taux nval apregraves n ans

                                                                                                            taux1val1 apregraves n ans

                                                                                                            GainAbs GainRel

                                                                                                            100 005 1 105 006 106 1 1

                                                                                                            100 005 2 110 006 112 2 2

                                                                                                            100 005 3 115 006 119 4 4

                                                                                                            100 005 4 121 006 126 5 5

                                                                                                            100 005 5 127 006 133 6 6

                                                                                                            100 005 6 134 006 141 7 7

                                                                                                            100 005 7 140 006 150 10 10

                                                                                                            100 005 8 147 006 159 12 12

                                                                                                            100 005 9 155 006 168 13 13

                                                                                                            100 005 10 162 006 179 17 17

                                                                                                            100 005 11 171 006 189 18 18

                                                                                                            100 005 12 179 006 201 22 22

                                                                                                            100 005 13 188 006 213 25 25

                                                                                                            100 005 14 197 006 226 29 29

                                                                                                            100 005 15 207 006 239 32 32

                                                                                                            100 005 16 218 006 254 36 36

                                                                                                            100 005 17 229 006 269 40 40

                                                                                                            100 005 18 240 006 285 45 45

                                                                                                            100 005 19 252 006 302 50 50

                                                                                                            100 005 20 265 006 320 55 55

                                                                                                            101

                                                                                                            Seacuteries financiegraveres

                                                                                                            102

                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                            financiers de la table Produits

                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                            bull En ordre descendant de prix

                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                            bull Plusieurs actionshellip

                                                                                                            103

                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                            P prix

                                                                                                            p3 200

                                                                                                            p1 200

                                                                                                            p2 400

                                                                                                            p3 200

                                                                                                            p4 100

                                                                                                            p6 100

                                                                                                            p5 300

                                                                                                            p8 300

                                                                                                            p7 400

                                                                                                            p10 200

                                                                                                            p12 300

                                                                                                            p13 300

                                                                                                            104

                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                            ORDER BY 4 desc 8 123

                                                                                                            105

                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                            106

                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                            107

                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                            108

                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                            109

                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                            110

                                                                                                            GROUPING SETS

                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                            HAVING tot-qty gt 100

                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                            111

                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                            112

                                                                                                            ROLLUP

                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                            113

                                                                                                            ROLLUP

                                                                                                            114

                                                                                                            ROLLUP

                                                                                                            Et le CUBE

                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                            de certains nuls

                                                                                                            115

                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                            Wiley (publ)

                                                                                                            116

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                            117

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                            118

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            119

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            120

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            121

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            122

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                            123

                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                            Exeacutecution autonome

                                                                                                            124

                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                            hellip

                                                                                                            125

                                                                                                            Liste de Choix Multibase

                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                            126

                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                            148

                                                                                                            FIN

                                                                                                            149

                                                                                                            • SQL Avanceacute 2010
                                                                                                            • Quoi amp Pourquoi
                                                                                                            • Slide 3
                                                                                                            • Synonymes
                                                                                                            • Noms dattributs
                                                                                                            • Slide 6
                                                                                                            • Slide 7
                                                                                                            • Slide 8
                                                                                                            • Insertion dans une Vue
                                                                                                            • Insertion dans une Vue (2)
                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                            • MsAccess Leacutegendes
                                                                                                            • Expressions de valeur
                                                                                                            • Expressions de valeur (2)
                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                            • UNION et ORDER BY
                                                                                                            • ORDER BY et expressions de valeur
                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                            • Preacutedicat TOP
                                                                                                            • Preacutedicat TOP (2)
                                                                                                            • Clause BETWEEN
                                                                                                            • Limitations de NOT
                                                                                                            • ANY et ALL
                                                                                                            • Injection SQL
                                                                                                            • Injection SQL (2)
                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                            • Tabulations Croiseacutees
                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                            • XOR
                                                                                                            • IMP
                                                                                                            • Sous-requecirctes
                                                                                                            • Sous-requecirctes (2)
                                                                                                            • Sous-requecirctes (3)
                                                                                                            • Sous-requecirctes (4)
                                                                                                            • Sous-requecirctes (5)
                                                                                                            • Sous-requecirctes (6)
                                                                                                            • Sous-requecirctes (7)
                                                                                                            • Application aux Probabiliteacutes
                                                                                                            • Clause FROM imbriqueacutee
                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                            • Valeurs nulles
                                                                                                            • Valeurs nulles (2)
                                                                                                            • Valeurs nulles (3)
                                                                                                            • Valeurs nulles (4)
                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                            • Fonction Scalaire RND
                                                                                                            • Fonction Scalaire RND (2)
                                                                                                            • Fonctions Financiegraveres
                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                            • Fonction DDB
                                                                                                            • Fonction DDB (2)
                                                                                                            • Fonction PMT
                                                                                                            • Fonction PMT (2)
                                                                                                            • Placement agrave taux variable
                                                                                                            • GROUP BY
                                                                                                            • LIST Function
                                                                                                            • LIST Function (2)
                                                                                                            • GROUP BY avec WHERE
                                                                                                            • GROUP BY (2)
                                                                                                            • GROUP BY avec HAVING
                                                                                                            • T-GROUP BY
                                                                                                            • T-GROUP BY (2)
                                                                                                            • T-GROUP BY (3)
                                                                                                            • T-GROUP BY (4)
                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                            • Distribution
                                                                                                            • Reacutesultat
                                                                                                            • Distribution Cumulative
                                                                                                            • Reacutesultat (2)
                                                                                                            • Cateacutegorisation
                                                                                                            • Cateacutegorisation (2)
                                                                                                            • Cateacutegorisation (3)
                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                            • Tendance
                                                                                                            • Moyenne Glissante
                                                                                                            • Moyenne Glissante (2)
                                                                                                            • Moyenne Glissante (3)
                                                                                                            • Seacuteries financiegraveres
                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                            • GROUPING SETS
                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                            • Slide 112
                                                                                                            • Slide 113
                                                                                                            • Slide 114
                                                                                                            • Autres Opeacuterations Utiles
                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                            • Liste de Choix Multibase
                                                                                                            • Liste de Choix Multibase (2)
                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                            • FIN
                                                                                                            • Slide 149

                                                                                                              55

                                                                                                              Valeurs nullesValeurs nulles

                                                                                                              SELECT P_1FROM P AS P_1WHERE p_1weight gt all (select (pyweight) from P as py where pycolor = blue)

                                                                                                              SELECT P_1FROM p AS P_1WHERE not exists (select from P as py where pycolor = blue and pyweight gt= p_1weight )

                                                                                                              Requecirctes eacutequivalentes test color et weight nuls remplace all par any et vois le reacutesultat

                                                                                                              56

                                                                                                              Valeurs nulles

                                                                                                              Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                              LOG (nul) -gt Error A voir cas par cas

                                                                                                              57

                                                                                                              Fonctions Scalaires DateTemps

                                                                                                              SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                              FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                              franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                              weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                              58

                                                                                                              Fonctions Scalaires DateTemps

                                                                                                              SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                              month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                              weekday(day(now())-1) AS [day]FROM S

                                                                                                              bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                              59

                                                                                                              Fonctions Scalaires DateTemps

                                                                                                              DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                              Interval Explanation

                                                                                                              Yyyy Year

                                                                                                              q Quarter

                                                                                                              m Month

                                                                                                              y Day of year

                                                                                                              d Day

                                                                                                              w Weekday

                                                                                                              ww Week

                                                                                                              h Hour

                                                                                                              n Minute

                                                                                                              s Second

                                                                                                              60

                                                                                                              Fonctions Scalaires DateTemps

                                                                                                              SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                              Test DateDiff

                                                                                                              now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                              bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                              61

                                                                                                              Fonctions Scalaires DateTemps

                                                                                                              bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                              Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                              hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                              drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                              62

                                                                                                              Fonction Scalaire RND

                                                                                                              bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                              hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                                                              echantillon s rank

                                                                                                              s1 502628087997437E-02

                                                                                                              s4 0518015921115875

                                                                                                              s3 075702953338623

                                                                                                              63

                                                                                                              Fonction Scalaire RND

                                                                                                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                                                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                              Votre commentaire ici

                                                                                                              64

                                                                                                              Fonctions Financiegraveres

                                                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                              65

                                                                                                              Fonctions Financiegraveres

                                                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                              66

                                                                                                              Fonction DDB

                                                                                                              insert into DDB (cost salvage life factor amortiss period)

                                                                                                              select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                              DDB(cost salvage life period factor) as amortiss period

                                                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                              67

                                                                                                              Fonction DDB

                                                                                                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                              68

                                                                                                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                              nombres neacutegatifs

                                                                                                              Fonction PMT

                                                                                                              69

                                                                                                              Fonction PMT

                                                                                                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                              Fonction PMT calcul dannuiteacute demprunt

                                                                                                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                              preacutesentevaleur_payeacutee surprime

                                                                                                              -16049 005 20 200000 -320980 -120980

                                                                                                              70

                                                                                                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                              Et les nuls que log ne supporte pas

                                                                                                              Anneacutee relative

                                                                                                              Taux

                                                                                                              1 4

                                                                                                              2 4

                                                                                                              3 3

                                                                                                              4 5

                                                                                                              5 5

                                                                                                              Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                              71

                                                                                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                              est eacutequivalente agrave

                                                                                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                              WHERE XP = SPP) FROM SP

                                                                                                              Testez

                                                                                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                              72

                                                                                                              LIST Function La requecircte

                                                                                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                              Comme les tabulations croiseacutees

                                                                                                              ndash Mais en + simple

                                                                                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                              ndash En mono attribut (2004)

                                                                                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                              sous-formulaires

                                                                                                              73

                                                                                                              LIST Function

                                                                                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                              74

                                                                                                              GROUP BY avec WHERE

                                                                                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                              75

                                                                                                              GROUP BY

                                                                                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                              Pourquoi

                                                                                                              76

                                                                                                              GROUP BY avec HAVING

                                                                                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                              77

                                                                                                              T-GROUP BY Proposeacute pour SQL

                                                                                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                              Le rocircle de -join par rapport agrave equi-join

                                                                                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                              INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                              78

                                                                                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                              FROM SP Vrai ou Faux

                                                                                                              79

                                                                                                              T-GROUP BY

                                                                                                              Reacutesultat

                                                                                                              part avg_qty_other_parts part_avg_qty

                                                                                                              p1 250 300

                                                                                                              p2 262 250

                                                                                                              p3 245 400

                                                                                                              p4 260 250

                                                                                                              p5 260 250

                                                                                                              p6 272 100

                                                                                                              80

                                                                                                              T-GROUP BY

                                                                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                              81

                                                                                                              Rangs Non-Denses(Non Dense Ranking)

                                                                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                              s p qtyND-rank

                                                                                                              s4 p5 400 1

                                                                                                              s3 p2 400 1

                                                                                                              s1 p3 400 1

                                                                                                              s4 p4 300 4

                                                                                                              s2 p2 300 4

                                                                                                              s1 p1 300 4

                                                                                                              s4 p2 200 7

                                                                                                              s1 p4 200 7

                                                                                                              s1 p2 200 7

                                                                                                              s4 p1 200 7

                                                                                                              s1 p6 100 11

                                                                                                              s1 p5 100 11

                                                                                                              82

                                                                                                              Rangs Non-Denses(Graphique MsAccess)

                                                                                                              s p qty ND-rank

                                                                                                              s4 p5 400 1

                                                                                                              s3 p2 400 1

                                                                                                              s1 p3 400 1

                                                                                                              s4 p4 300 4

                                                                                                              s2 p2 300 4

                                                                                                              s1 p1 300 4

                                                                                                              s4 p2 200 7

                                                                                                              s1 p4 200 7

                                                                                                              s1 p2 200 7

                                                                                                              s4 p1 200 7

                                                                                                              s1 p6 100 11

                                                                                                              s1 p5 100 11

                                                                                                              83

                                                                                                              Rangs Denses(Dense Ranking)

                                                                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                              s p qtyD-rank

                                                                                                              s1 p3 400 1

                                                                                                              s3 p2 400 1

                                                                                                              s4 p5 400 1

                                                                                                              s1 p1 300 2

                                                                                                              s2 p2 300 2

                                                                                                              s4 p4 300 2

                                                                                                              s1 p4 200 3

                                                                                                              s1 p2 200 3

                                                                                                              s4 p2 200 3

                                                                                                              s4 p1 200 3

                                                                                                              s1 p6 100 4

                                                                                                              s1 p5 100 4

                                                                                                              84

                                                                                                              Rangs DensesGraphique MsAccess

                                                                                                              s p qty D-rank

                                                                                                              s1 p3 400 1

                                                                                                              s3 p2 400 1

                                                                                                              s4 p5 400 1

                                                                                                              s1 p1 300 2

                                                                                                              s2 p2 300 2

                                                                                                              s4 p4 300 2

                                                                                                              s1 p4 200 3

                                                                                                              s1 p2 200 3

                                                                                                              s4 p2 200 3

                                                                                                              s4 p1 200 3

                                                                                                              s1 p6 100 4

                                                                                                              s1 p5 100 4

                                                                                                              85

                                                                                                              Distribution

                                                                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                              86

                                                                                                              Reacutesultat

                                                                                                              s Distribution

                                                                                                              s1 0419

                                                                                                              s2 0097

                                                                                                              s3 0129

                                                                                                              s4 0355

                                                                                                              87

                                                                                                              Distribution Cumulative

                                                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                              FROM SP

                                                                                                              ORDER BY SP[s]

                                                                                                              88

                                                                                                              Reacutesultat

                                                                                                              sDistribution Cumuleacutee

                                                                                                              s1 0419

                                                                                                              s2 0516

                                                                                                              s3 0645

                                                                                                              s4 1

                                                                                                              89

                                                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                              90

                                                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                              FROM S

                                                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                              s1 Smith Paris good good

                                                                                                              s2 Jones 100 london good VGood

                                                                                                              s3 Blake 30 Paris good good

                                                                                                              s4 Clark 10 london OK OK

                                                                                                              s5 Adams 30 Athens good good

                                                                                                              bull Notez le traitement du null

                                                                                                              91

                                                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                                                              FROM P where weight gt 13

                                                                                                              union

                                                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                              UNION

                                                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                                                              ORDER BY warning DESC weight DESC

                                                                                                              pname weight Warning

                                                                                                              cam 19 Very Heavy

                                                                                                              cog 19 Very Heavy

                                                                                                              bolt 17 Very Heavy

                                                                                                              nut 14 Very Heavy

                                                                                                              screw 14 Very Heavy

                                                                                                              nut 14 Quite Heavy

                                                                                                              screw 14 Quite Heavy

                                                                                                              screw 12 Quite Heavy

                                                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                              92

                                                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                                                              On considegravere AVG(Qty1) pour Qty

                                                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                              SP

                                                                                                              s p qtyQty1

                                                                                                              s1 p1 300 400

                                                                                                              s1 p2 200

                                                                                                              s1 p3 400 600

                                                                                                              s1 p4 200 300

                                                                                                              s1 p5 100

                                                                                                              s1 p6 100 200

                                                                                                              s2 p2 300 500

                                                                                                              s3 p2 400

                                                                                                              s4 p1 200 100

                                                                                                              s4 p2 200

                                                                                                              s4 p4 300

                                                                                                              s4 p5 400

                                                                                                              93

                                                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                              SP

                                                                                                              s p qtyQty1

                                                                                                              s1 p1 300 400

                                                                                                              s1 p2 200

                                                                                                              s1 p3 400 600

                                                                                                              s1 p4 200 300

                                                                                                              s1 p5 100

                                                                                                              s1 p6 100 200

                                                                                                              s2 p2 300 500

                                                                                                              s3 p2 400

                                                                                                              s4 p1 200 100

                                                                                                              s4 p2 200

                                                                                                              s4 p4 300

                                                                                                              s4 p5 400

                                                                                                              qty for partpredicted or

                                                                                                              unknown Qty1

                                                                                                              100 p5

                                                                                                              100 predicted value 200

                                                                                                              200 p2

                                                                                                              200 predicted value 200

                                                                                                              300 p4

                                                                                                              300 predicted value 450

                                                                                                              400 p2

                                                                                                              400 p5

                                                                                                              400 predicted value 600

                                                                                                              94

                                                                                                              Tendance

                                                                                                              qty Qty1

                                                                                                              100 200

                                                                                                              200 300

                                                                                                              300 400

                                                                                                              400 600

                                                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                              Graph 3D avec Qty en abscisses

                                                                                                              95

                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                              30102008 120 27102008 4

                                                                                                              25102008 131 22102008 4

                                                                                                              23102008 127 20102008 4

                                                                                                              17102008 269 14102008 4

                                                                                                              15102008 60 12102008 4

                                                                                                              11102008 295 08102008 4

                                                                                                              09102008 340 06102008 4

                                                                                                              08102008 324 05102008 4

                                                                                                              06102008 315 03102008 4

                                                                                                              96

                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                              Graphique avec une info-bulle

                                                                                                              97

                                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                              glissantes

                                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                                              bull MAVG

                                                                                                              bull MSUM

                                                                                                              bull MDIFF

                                                                                                              bull Voir Teradata + loin

                                                                                                              98

                                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                              99

                                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                                              100

                                                                                                              Seacuteries financiegraveres

                                                                                                              capital taux nval apregraves n ans

                                                                                                              taux1val1 apregraves n ans

                                                                                                              GainAbs GainRel

                                                                                                              100 005 1 105 006 106 1 1

                                                                                                              100 005 2 110 006 112 2 2

                                                                                                              100 005 3 115 006 119 4 4

                                                                                                              100 005 4 121 006 126 5 5

                                                                                                              100 005 5 127 006 133 6 6

                                                                                                              100 005 6 134 006 141 7 7

                                                                                                              100 005 7 140 006 150 10 10

                                                                                                              100 005 8 147 006 159 12 12

                                                                                                              100 005 9 155 006 168 13 13

                                                                                                              100 005 10 162 006 179 17 17

                                                                                                              100 005 11 171 006 189 18 18

                                                                                                              100 005 12 179 006 201 22 22

                                                                                                              100 005 13 188 006 213 25 25

                                                                                                              100 005 14 197 006 226 29 29

                                                                                                              100 005 15 207 006 239 32 32

                                                                                                              100 005 16 218 006 254 36 36

                                                                                                              100 005 17 229 006 269 40 40

                                                                                                              100 005 18 240 006 285 45 45

                                                                                                              100 005 19 252 006 302 50 50

                                                                                                              100 005 20 265 006 320 55 55

                                                                                                              101

                                                                                                              Seacuteries financiegraveres

                                                                                                              102

                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                              financiers de la table Produits

                                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                              bull En ordre descendant de prix

                                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                              bull Plusieurs actionshellip

                                                                                                              103

                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                              P prix

                                                                                                              p3 200

                                                                                                              p1 200

                                                                                                              p2 400

                                                                                                              p3 200

                                                                                                              p4 100

                                                                                                              p6 100

                                                                                                              p5 300

                                                                                                              p8 300

                                                                                                              p7 400

                                                                                                              p10 200

                                                                                                              p12 300

                                                                                                              p13 300

                                                                                                              104

                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                              ORDER BY 4 desc 8 123

                                                                                                              105

                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                              106

                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                              107

                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                              108

                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                              109

                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                              110

                                                                                                              GROUPING SETS

                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                              HAVING tot-qty gt 100

                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                              111

                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                              112

                                                                                                              ROLLUP

                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                              113

                                                                                                              ROLLUP

                                                                                                              114

                                                                                                              ROLLUP

                                                                                                              Et le CUBE

                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                              de certains nuls

                                                                                                              115

                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                              Wiley (publ)

                                                                                                              116

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                              117

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                              118

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              119

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              120

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              121

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              122

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                              123

                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                              Exeacutecution autonome

                                                                                                              124

                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                              hellip

                                                                                                              125

                                                                                                              Liste de Choix Multibase

                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                              126

                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                              148

                                                                                                              FIN

                                                                                                              149

                                                                                                              • SQL Avanceacute 2010
                                                                                                              • Quoi amp Pourquoi
                                                                                                              • Slide 3
                                                                                                              • Synonymes
                                                                                                              • Noms dattributs
                                                                                                              • Slide 6
                                                                                                              • Slide 7
                                                                                                              • Slide 8
                                                                                                              • Insertion dans une Vue
                                                                                                              • Insertion dans une Vue (2)
                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                              • MsAccess Leacutegendes
                                                                                                              • Expressions de valeur
                                                                                                              • Expressions de valeur (2)
                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                              • UNION et ORDER BY
                                                                                                              • ORDER BY et expressions de valeur
                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                              • Preacutedicat TOP
                                                                                                              • Preacutedicat TOP (2)
                                                                                                              • Clause BETWEEN
                                                                                                              • Limitations de NOT
                                                                                                              • ANY et ALL
                                                                                                              • Injection SQL
                                                                                                              • Injection SQL (2)
                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                              • Tabulations Croiseacutees
                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                              • XOR
                                                                                                              • IMP
                                                                                                              • Sous-requecirctes
                                                                                                              • Sous-requecirctes (2)
                                                                                                              • Sous-requecirctes (3)
                                                                                                              • Sous-requecirctes (4)
                                                                                                              • Sous-requecirctes (5)
                                                                                                              • Sous-requecirctes (6)
                                                                                                              • Sous-requecirctes (7)
                                                                                                              • Application aux Probabiliteacutes
                                                                                                              • Clause FROM imbriqueacutee
                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                              • Valeurs nulles
                                                                                                              • Valeurs nulles (2)
                                                                                                              • Valeurs nulles (3)
                                                                                                              • Valeurs nulles (4)
                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                              • Fonction Scalaire RND
                                                                                                              • Fonction Scalaire RND (2)
                                                                                                              • Fonctions Financiegraveres
                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                              • Fonction DDB
                                                                                                              • Fonction DDB (2)
                                                                                                              • Fonction PMT
                                                                                                              • Fonction PMT (2)
                                                                                                              • Placement agrave taux variable
                                                                                                              • GROUP BY
                                                                                                              • LIST Function
                                                                                                              • LIST Function (2)
                                                                                                              • GROUP BY avec WHERE
                                                                                                              • GROUP BY (2)
                                                                                                              • GROUP BY avec HAVING
                                                                                                              • T-GROUP BY
                                                                                                              • T-GROUP BY (2)
                                                                                                              • T-GROUP BY (3)
                                                                                                              • T-GROUP BY (4)
                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                              • Distribution
                                                                                                              • Reacutesultat
                                                                                                              • Distribution Cumulative
                                                                                                              • Reacutesultat (2)
                                                                                                              • Cateacutegorisation
                                                                                                              • Cateacutegorisation (2)
                                                                                                              • Cateacutegorisation (3)
                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                              • Tendance
                                                                                                              • Moyenne Glissante
                                                                                                              • Moyenne Glissante (2)
                                                                                                              • Moyenne Glissante (3)
                                                                                                              • Seacuteries financiegraveres
                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                              • GROUPING SETS
                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                              • Slide 112
                                                                                                              • Slide 113
                                                                                                              • Slide 114
                                                                                                              • Autres Opeacuterations Utiles
                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                              • Liste de Choix Multibase
                                                                                                              • Liste de Choix Multibase (2)
                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                              • FIN
                                                                                                              • Slide 149

                                                                                                                56

                                                                                                                Valeurs nulles

                                                                                                                Fonctions scalairesndashpeuvent srsquoappliquer aux nuls ndashABS INT LCASE (nul) = nulndashpeuvent geacuteneacuterer une erreur

                                                                                                                LOG (nul) -gt Error A voir cas par cas

                                                                                                                57

                                                                                                                Fonctions Scalaires DateTemps

                                                                                                                SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                                FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                                franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                                weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                                58

                                                                                                                Fonctions Scalaires DateTemps

                                                                                                                SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                                month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                                weekday(day(now())-1) AS [day]FROM S

                                                                                                                bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                                59

                                                                                                                Fonctions Scalaires DateTemps

                                                                                                                DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                                Interval Explanation

                                                                                                                Yyyy Year

                                                                                                                q Quarter

                                                                                                                m Month

                                                                                                                y Day of year

                                                                                                                d Day

                                                                                                                w Weekday

                                                                                                                ww Week

                                                                                                                h Hour

                                                                                                                n Minute

                                                                                                                s Second

                                                                                                                60

                                                                                                                Fonctions Scalaires DateTemps

                                                                                                                SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                                Test DateDiff

                                                                                                                now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                                bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                                61

                                                                                                                Fonctions Scalaires DateTemps

                                                                                                                bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                                Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                                hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                                drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                                62

                                                                                                                Fonction Scalaire RND

                                                                                                                bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                FROM SPORDER BY rnd(qty) DESC

                                                                                                                echantillon s rank

                                                                                                                s1 502628087997437E-02

                                                                                                                s4 0518015921115875

                                                                                                                s3 075702953338623

                                                                                                                63

                                                                                                                Fonction Scalaire RND

                                                                                                                bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                FROM SPORDER BY rnd(qty) DESC

                                                                                                                OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                Votre commentaire ici

                                                                                                                64

                                                                                                                Fonctions Financiegraveres

                                                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                65

                                                                                                                Fonctions Financiegraveres

                                                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                66

                                                                                                                Fonction DDB

                                                                                                                insert into DDB (cost salvage life factor amortiss period)

                                                                                                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                DDB(cost salvage life period factor) as amortiss period

                                                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                67

                                                                                                                Fonction DDB

                                                                                                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                68

                                                                                                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                nombres neacutegatifs

                                                                                                                Fonction PMT

                                                                                                                69

                                                                                                                Fonction PMT

                                                                                                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                Fonction PMT calcul dannuiteacute demprunt

                                                                                                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                preacutesentevaleur_payeacutee surprime

                                                                                                                -16049 005 20 200000 -320980 -120980

                                                                                                                70

                                                                                                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                Et les nuls que log ne supporte pas

                                                                                                                Anneacutee relative

                                                                                                                Taux

                                                                                                                1 4

                                                                                                                2 4

                                                                                                                3 3

                                                                                                                4 5

                                                                                                                5 5

                                                                                                                Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                71

                                                                                                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                est eacutequivalente agrave

                                                                                                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                WHERE XP = SPP) FROM SP

                                                                                                                Testez

                                                                                                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                72

                                                                                                                LIST Function La requecircte

                                                                                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                Comme les tabulations croiseacutees

                                                                                                                ndash Mais en + simple

                                                                                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                ndash En mono attribut (2004)

                                                                                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                sous-formulaires

                                                                                                                73

                                                                                                                LIST Function

                                                                                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                74

                                                                                                                GROUP BY avec WHERE

                                                                                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                75

                                                                                                                GROUP BY

                                                                                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                Pourquoi

                                                                                                                76

                                                                                                                GROUP BY avec HAVING

                                                                                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                77

                                                                                                                T-GROUP BY Proposeacute pour SQL

                                                                                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                Le rocircle de -join par rapport agrave equi-join

                                                                                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                78

                                                                                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                FROM SP Vrai ou Faux

                                                                                                                79

                                                                                                                T-GROUP BY

                                                                                                                Reacutesultat

                                                                                                                part avg_qty_other_parts part_avg_qty

                                                                                                                p1 250 300

                                                                                                                p2 262 250

                                                                                                                p3 245 400

                                                                                                                p4 260 250

                                                                                                                p5 260 250

                                                                                                                p6 272 100

                                                                                                                80

                                                                                                                T-GROUP BY

                                                                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                81

                                                                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                s p qtyND-rank

                                                                                                                s4 p5 400 1

                                                                                                                s3 p2 400 1

                                                                                                                s1 p3 400 1

                                                                                                                s4 p4 300 4

                                                                                                                s2 p2 300 4

                                                                                                                s1 p1 300 4

                                                                                                                s4 p2 200 7

                                                                                                                s1 p4 200 7

                                                                                                                s1 p2 200 7

                                                                                                                s4 p1 200 7

                                                                                                                s1 p6 100 11

                                                                                                                s1 p5 100 11

                                                                                                                82

                                                                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                                                                s p qty ND-rank

                                                                                                                s4 p5 400 1

                                                                                                                s3 p2 400 1

                                                                                                                s1 p3 400 1

                                                                                                                s4 p4 300 4

                                                                                                                s2 p2 300 4

                                                                                                                s1 p1 300 4

                                                                                                                s4 p2 200 7

                                                                                                                s1 p4 200 7

                                                                                                                s1 p2 200 7

                                                                                                                s4 p1 200 7

                                                                                                                s1 p6 100 11

                                                                                                                s1 p5 100 11

                                                                                                                83

                                                                                                                Rangs Denses(Dense Ranking)

                                                                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                s p qtyD-rank

                                                                                                                s1 p3 400 1

                                                                                                                s3 p2 400 1

                                                                                                                s4 p5 400 1

                                                                                                                s1 p1 300 2

                                                                                                                s2 p2 300 2

                                                                                                                s4 p4 300 2

                                                                                                                s1 p4 200 3

                                                                                                                s1 p2 200 3

                                                                                                                s4 p2 200 3

                                                                                                                s4 p1 200 3

                                                                                                                s1 p6 100 4

                                                                                                                s1 p5 100 4

                                                                                                                84

                                                                                                                Rangs DensesGraphique MsAccess

                                                                                                                s p qty D-rank

                                                                                                                s1 p3 400 1

                                                                                                                s3 p2 400 1

                                                                                                                s4 p5 400 1

                                                                                                                s1 p1 300 2

                                                                                                                s2 p2 300 2

                                                                                                                s4 p4 300 2

                                                                                                                s1 p4 200 3

                                                                                                                s1 p2 200 3

                                                                                                                s4 p2 200 3

                                                                                                                s4 p1 200 3

                                                                                                                s1 p6 100 4

                                                                                                                s1 p5 100 4

                                                                                                                85

                                                                                                                Distribution

                                                                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                86

                                                                                                                Reacutesultat

                                                                                                                s Distribution

                                                                                                                s1 0419

                                                                                                                s2 0097

                                                                                                                s3 0129

                                                                                                                s4 0355

                                                                                                                87

                                                                                                                Distribution Cumulative

                                                                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                FROM SP

                                                                                                                ORDER BY SP[s]

                                                                                                                88

                                                                                                                Reacutesultat

                                                                                                                sDistribution Cumuleacutee

                                                                                                                s1 0419

                                                                                                                s2 0516

                                                                                                                s3 0645

                                                                                                                s4 1

                                                                                                                89

                                                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                90

                                                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                FROM S

                                                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                s1 Smith Paris good good

                                                                                                                s2 Jones 100 london good VGood

                                                                                                                s3 Blake 30 Paris good good

                                                                                                                s4 Clark 10 london OK OK

                                                                                                                s5 Adams 30 Athens good good

                                                                                                                bull Notez le traitement du null

                                                                                                                91

                                                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                                                FROM P where weight gt 13

                                                                                                                union

                                                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                UNION

                                                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                                                ORDER BY warning DESC weight DESC

                                                                                                                pname weight Warning

                                                                                                                cam 19 Very Heavy

                                                                                                                cog 19 Very Heavy

                                                                                                                bolt 17 Very Heavy

                                                                                                                nut 14 Very Heavy

                                                                                                                screw 14 Very Heavy

                                                                                                                nut 14 Quite Heavy

                                                                                                                screw 14 Quite Heavy

                                                                                                                screw 12 Quite Heavy

                                                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                92

                                                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                SP

                                                                                                                s p qtyQty1

                                                                                                                s1 p1 300 400

                                                                                                                s1 p2 200

                                                                                                                s1 p3 400 600

                                                                                                                s1 p4 200 300

                                                                                                                s1 p5 100

                                                                                                                s1 p6 100 200

                                                                                                                s2 p2 300 500

                                                                                                                s3 p2 400

                                                                                                                s4 p1 200 100

                                                                                                                s4 p2 200

                                                                                                                s4 p4 300

                                                                                                                s4 p5 400

                                                                                                                93

                                                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                SP

                                                                                                                s p qtyQty1

                                                                                                                s1 p1 300 400

                                                                                                                s1 p2 200

                                                                                                                s1 p3 400 600

                                                                                                                s1 p4 200 300

                                                                                                                s1 p5 100

                                                                                                                s1 p6 100 200

                                                                                                                s2 p2 300 500

                                                                                                                s3 p2 400

                                                                                                                s4 p1 200 100

                                                                                                                s4 p2 200

                                                                                                                s4 p4 300

                                                                                                                s4 p5 400

                                                                                                                qty for partpredicted or

                                                                                                                unknown Qty1

                                                                                                                100 p5

                                                                                                                100 predicted value 200

                                                                                                                200 p2

                                                                                                                200 predicted value 200

                                                                                                                300 p4

                                                                                                                300 predicted value 450

                                                                                                                400 p2

                                                                                                                400 p5

                                                                                                                400 predicted value 600

                                                                                                                94

                                                                                                                Tendance

                                                                                                                qty Qty1

                                                                                                                100 200

                                                                                                                200 300

                                                                                                                300 400

                                                                                                                400 600

                                                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                Graph 3D avec Qty en abscisses

                                                                                                                95

                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                30102008 120 27102008 4

                                                                                                                25102008 131 22102008 4

                                                                                                                23102008 127 20102008 4

                                                                                                                17102008 269 14102008 4

                                                                                                                15102008 60 12102008 4

                                                                                                                11102008 295 08102008 4

                                                                                                                09102008 340 06102008 4

                                                                                                                08102008 324 05102008 4

                                                                                                                06102008 315 03102008 4

                                                                                                                96

                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                Graphique avec une info-bulle

                                                                                                                97

                                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                glissantes

                                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                                bull MAVG

                                                                                                                bull MSUM

                                                                                                                bull MDIFF

                                                                                                                bull Voir Teradata + loin

                                                                                                                98

                                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                99

                                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                                100

                                                                                                                Seacuteries financiegraveres

                                                                                                                capital taux nval apregraves n ans

                                                                                                                taux1val1 apregraves n ans

                                                                                                                GainAbs GainRel

                                                                                                                100 005 1 105 006 106 1 1

                                                                                                                100 005 2 110 006 112 2 2

                                                                                                                100 005 3 115 006 119 4 4

                                                                                                                100 005 4 121 006 126 5 5

                                                                                                                100 005 5 127 006 133 6 6

                                                                                                                100 005 6 134 006 141 7 7

                                                                                                                100 005 7 140 006 150 10 10

                                                                                                                100 005 8 147 006 159 12 12

                                                                                                                100 005 9 155 006 168 13 13

                                                                                                                100 005 10 162 006 179 17 17

                                                                                                                100 005 11 171 006 189 18 18

                                                                                                                100 005 12 179 006 201 22 22

                                                                                                                100 005 13 188 006 213 25 25

                                                                                                                100 005 14 197 006 226 29 29

                                                                                                                100 005 15 207 006 239 32 32

                                                                                                                100 005 16 218 006 254 36 36

                                                                                                                100 005 17 229 006 269 40 40

                                                                                                                100 005 18 240 006 285 45 45

                                                                                                                100 005 19 252 006 302 50 50

                                                                                                                100 005 20 265 006 320 55 55

                                                                                                                101

                                                                                                                Seacuteries financiegraveres

                                                                                                                102

                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                financiers de la table Produits

                                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                bull En ordre descendant de prix

                                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                bull Plusieurs actionshellip

                                                                                                                103

                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                P prix

                                                                                                                p3 200

                                                                                                                p1 200

                                                                                                                p2 400

                                                                                                                p3 200

                                                                                                                p4 100

                                                                                                                p6 100

                                                                                                                p5 300

                                                                                                                p8 300

                                                                                                                p7 400

                                                                                                                p10 200

                                                                                                                p12 300

                                                                                                                p13 300

                                                                                                                104

                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                105

                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                106

                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                107

                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                108

                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                109

                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                110

                                                                                                                GROUPING SETS

                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                HAVING tot-qty gt 100

                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                111

                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                112

                                                                                                                ROLLUP

                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                113

                                                                                                                ROLLUP

                                                                                                                114

                                                                                                                ROLLUP

                                                                                                                Et le CUBE

                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                de certains nuls

                                                                                                                115

                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                Wiley (publ)

                                                                                                                116

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                117

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                118

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                119

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                120

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                121

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                122

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                123

                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                Exeacutecution autonome

                                                                                                                124

                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                hellip

                                                                                                                125

                                                                                                                Liste de Choix Multibase

                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                126

                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                148

                                                                                                                FIN

                                                                                                                149

                                                                                                                • SQL Avanceacute 2010
                                                                                                                • Quoi amp Pourquoi
                                                                                                                • Slide 3
                                                                                                                • Synonymes
                                                                                                                • Noms dattributs
                                                                                                                • Slide 6
                                                                                                                • Slide 7
                                                                                                                • Slide 8
                                                                                                                • Insertion dans une Vue
                                                                                                                • Insertion dans une Vue (2)
                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                • MsAccess Leacutegendes
                                                                                                                • Expressions de valeur
                                                                                                                • Expressions de valeur (2)
                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                • UNION et ORDER BY
                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                • Preacutedicat TOP
                                                                                                                • Preacutedicat TOP (2)
                                                                                                                • Clause BETWEEN
                                                                                                                • Limitations de NOT
                                                                                                                • ANY et ALL
                                                                                                                • Injection SQL
                                                                                                                • Injection SQL (2)
                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                • Tabulations Croiseacutees
                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                • XOR
                                                                                                                • IMP
                                                                                                                • Sous-requecirctes
                                                                                                                • Sous-requecirctes (2)
                                                                                                                • Sous-requecirctes (3)
                                                                                                                • Sous-requecirctes (4)
                                                                                                                • Sous-requecirctes (5)
                                                                                                                • Sous-requecirctes (6)
                                                                                                                • Sous-requecirctes (7)
                                                                                                                • Application aux Probabiliteacutes
                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                • Valeurs nulles
                                                                                                                • Valeurs nulles (2)
                                                                                                                • Valeurs nulles (3)
                                                                                                                • Valeurs nulles (4)
                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                • Fonction Scalaire RND
                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                • Fonctions Financiegraveres
                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                • Fonction DDB
                                                                                                                • Fonction DDB (2)
                                                                                                                • Fonction PMT
                                                                                                                • Fonction PMT (2)
                                                                                                                • Placement agrave taux variable
                                                                                                                • GROUP BY
                                                                                                                • LIST Function
                                                                                                                • LIST Function (2)
                                                                                                                • GROUP BY avec WHERE
                                                                                                                • GROUP BY (2)
                                                                                                                • GROUP BY avec HAVING
                                                                                                                • T-GROUP BY
                                                                                                                • T-GROUP BY (2)
                                                                                                                • T-GROUP BY (3)
                                                                                                                • T-GROUP BY (4)
                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                • Distribution
                                                                                                                • Reacutesultat
                                                                                                                • Distribution Cumulative
                                                                                                                • Reacutesultat (2)
                                                                                                                • Cateacutegorisation
                                                                                                                • Cateacutegorisation (2)
                                                                                                                • Cateacutegorisation (3)
                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                • Tendance
                                                                                                                • Moyenne Glissante
                                                                                                                • Moyenne Glissante (2)
                                                                                                                • Moyenne Glissante (3)
                                                                                                                • Seacuteries financiegraveres
                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                • GROUPING SETS
                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                • Slide 112
                                                                                                                • Slide 113
                                                                                                                • Slide 114
                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                • Liste de Choix Multibase
                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                • FIN
                                                                                                                • Slide 149

                                                                                                                  57

                                                                                                                  Fonctions Scalaires DateTemps

                                                                                                                  SELECT Now() AS now Weekday(301006) AS [weekday of 301006] Weekday(301006+15) AS [weekday + 15] weekdayname(2) AS [weekdaynameerror for 301006] WeekdayName(weekday(datevalue(now())-1)) AS [weekdaynamecorrig for now ()]

                                                                                                                  FROM S Une erreur de calcul du nom du jour de la semaine existe en version

                                                                                                                  franccedilaise de MsAccess 2003endash La semaine US de weekday commence le dimanche celle franccedilaise de

                                                                                                                  weekdayname le lundindash Donc laquo 2 raquo ci-dessus doit donner lieu au lundi (la reacutealiteacute pour 301006)

                                                                                                                  58

                                                                                                                  Fonctions Scalaires DateTemps

                                                                                                                  SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                                  month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                                  weekday(day(now())-1) AS [day]FROM S

                                                                                                                  bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                                  59

                                                                                                                  Fonctions Scalaires DateTemps

                                                                                                                  DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                                  Interval Explanation

                                                                                                                  Yyyy Year

                                                                                                                  q Quarter

                                                                                                                  m Month

                                                                                                                  y Day of year

                                                                                                                  d Day

                                                                                                                  w Weekday

                                                                                                                  ww Week

                                                                                                                  h Hour

                                                                                                                  n Minute

                                                                                                                  s Second

                                                                                                                  60

                                                                                                                  Fonctions Scalaires DateTemps

                                                                                                                  SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                                  Test DateDiff

                                                                                                                  now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                                  bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                                  61

                                                                                                                  Fonctions Scalaires DateTemps

                                                                                                                  bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                                  Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                                  hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                                  drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                                  62

                                                                                                                  Fonction Scalaire RND

                                                                                                                  bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                  hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                                                                  echantillon s rank

                                                                                                                  s1 502628087997437E-02

                                                                                                                  s4 0518015921115875

                                                                                                                  s3 075702953338623

                                                                                                                  63

                                                                                                                  Fonction Scalaire RND

                                                                                                                  bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                  FROM SPORDER BY rnd(qty) DESC

                                                                                                                  OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                  Votre commentaire ici

                                                                                                                  64

                                                                                                                  Fonctions Financiegraveres

                                                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                  65

                                                                                                                  Fonctions Financiegraveres

                                                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                  66

                                                                                                                  Fonction DDB

                                                                                                                  insert into DDB (cost salvage life factor amortiss period)

                                                                                                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                  DDB(cost salvage life period factor) as amortiss period

                                                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                  67

                                                                                                                  Fonction DDB

                                                                                                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                  68

                                                                                                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                  nombres neacutegatifs

                                                                                                                  Fonction PMT

                                                                                                                  69

                                                                                                                  Fonction PMT

                                                                                                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                  Fonction PMT calcul dannuiteacute demprunt

                                                                                                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                  preacutesentevaleur_payeacutee surprime

                                                                                                                  -16049 005 20 200000 -320980 -120980

                                                                                                                  70

                                                                                                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                  Et les nuls que log ne supporte pas

                                                                                                                  Anneacutee relative

                                                                                                                  Taux

                                                                                                                  1 4

                                                                                                                  2 4

                                                                                                                  3 3

                                                                                                                  4 5

                                                                                                                  5 5

                                                                                                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                  71

                                                                                                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                  est eacutequivalente agrave

                                                                                                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                  WHERE XP = SPP) FROM SP

                                                                                                                  Testez

                                                                                                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                  72

                                                                                                                  LIST Function La requecircte

                                                                                                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                  Comme les tabulations croiseacutees

                                                                                                                  ndash Mais en + simple

                                                                                                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                  ndash En mono attribut (2004)

                                                                                                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                  sous-formulaires

                                                                                                                  73

                                                                                                                  LIST Function

                                                                                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                  74

                                                                                                                  GROUP BY avec WHERE

                                                                                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                  75

                                                                                                                  GROUP BY

                                                                                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                  Pourquoi

                                                                                                                  76

                                                                                                                  GROUP BY avec HAVING

                                                                                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                  77

                                                                                                                  T-GROUP BY Proposeacute pour SQL

                                                                                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                  Le rocircle de -join par rapport agrave equi-join

                                                                                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                  78

                                                                                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                  FROM SP Vrai ou Faux

                                                                                                                  79

                                                                                                                  T-GROUP BY

                                                                                                                  Reacutesultat

                                                                                                                  part avg_qty_other_parts part_avg_qty

                                                                                                                  p1 250 300

                                                                                                                  p2 262 250

                                                                                                                  p3 245 400

                                                                                                                  p4 260 250

                                                                                                                  p5 260 250

                                                                                                                  p6 272 100

                                                                                                                  80

                                                                                                                  T-GROUP BY

                                                                                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                  81

                                                                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                  s p qtyND-rank

                                                                                                                  s4 p5 400 1

                                                                                                                  s3 p2 400 1

                                                                                                                  s1 p3 400 1

                                                                                                                  s4 p4 300 4

                                                                                                                  s2 p2 300 4

                                                                                                                  s1 p1 300 4

                                                                                                                  s4 p2 200 7

                                                                                                                  s1 p4 200 7

                                                                                                                  s1 p2 200 7

                                                                                                                  s4 p1 200 7

                                                                                                                  s1 p6 100 11

                                                                                                                  s1 p5 100 11

                                                                                                                  82

                                                                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                                                                  s p qty ND-rank

                                                                                                                  s4 p5 400 1

                                                                                                                  s3 p2 400 1

                                                                                                                  s1 p3 400 1

                                                                                                                  s4 p4 300 4

                                                                                                                  s2 p2 300 4

                                                                                                                  s1 p1 300 4

                                                                                                                  s4 p2 200 7

                                                                                                                  s1 p4 200 7

                                                                                                                  s1 p2 200 7

                                                                                                                  s4 p1 200 7

                                                                                                                  s1 p6 100 11

                                                                                                                  s1 p5 100 11

                                                                                                                  83

                                                                                                                  Rangs Denses(Dense Ranking)

                                                                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                  s p qtyD-rank

                                                                                                                  s1 p3 400 1

                                                                                                                  s3 p2 400 1

                                                                                                                  s4 p5 400 1

                                                                                                                  s1 p1 300 2

                                                                                                                  s2 p2 300 2

                                                                                                                  s4 p4 300 2

                                                                                                                  s1 p4 200 3

                                                                                                                  s1 p2 200 3

                                                                                                                  s4 p2 200 3

                                                                                                                  s4 p1 200 3

                                                                                                                  s1 p6 100 4

                                                                                                                  s1 p5 100 4

                                                                                                                  84

                                                                                                                  Rangs DensesGraphique MsAccess

                                                                                                                  s p qty D-rank

                                                                                                                  s1 p3 400 1

                                                                                                                  s3 p2 400 1

                                                                                                                  s4 p5 400 1

                                                                                                                  s1 p1 300 2

                                                                                                                  s2 p2 300 2

                                                                                                                  s4 p4 300 2

                                                                                                                  s1 p4 200 3

                                                                                                                  s1 p2 200 3

                                                                                                                  s4 p2 200 3

                                                                                                                  s4 p1 200 3

                                                                                                                  s1 p6 100 4

                                                                                                                  s1 p5 100 4

                                                                                                                  85

                                                                                                                  Distribution

                                                                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                  86

                                                                                                                  Reacutesultat

                                                                                                                  s Distribution

                                                                                                                  s1 0419

                                                                                                                  s2 0097

                                                                                                                  s3 0129

                                                                                                                  s4 0355

                                                                                                                  87

                                                                                                                  Distribution Cumulative

                                                                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                  FROM SP

                                                                                                                  ORDER BY SP[s]

                                                                                                                  88

                                                                                                                  Reacutesultat

                                                                                                                  sDistribution Cumuleacutee

                                                                                                                  s1 0419

                                                                                                                  s2 0516

                                                                                                                  s3 0645

                                                                                                                  s4 1

                                                                                                                  89

                                                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                  90

                                                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                  FROM S

                                                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                  s1 Smith Paris good good

                                                                                                                  s2 Jones 100 london good VGood

                                                                                                                  s3 Blake 30 Paris good good

                                                                                                                  s4 Clark 10 london OK OK

                                                                                                                  s5 Adams 30 Athens good good

                                                                                                                  bull Notez le traitement du null

                                                                                                                  91

                                                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                                                  FROM P where weight gt 13

                                                                                                                  union

                                                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                  UNION

                                                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                                                  ORDER BY warning DESC weight DESC

                                                                                                                  pname weight Warning

                                                                                                                  cam 19 Very Heavy

                                                                                                                  cog 19 Very Heavy

                                                                                                                  bolt 17 Very Heavy

                                                                                                                  nut 14 Very Heavy

                                                                                                                  screw 14 Very Heavy

                                                                                                                  nut 14 Quite Heavy

                                                                                                                  screw 14 Quite Heavy

                                                                                                                  screw 12 Quite Heavy

                                                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                  92

                                                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                  SP

                                                                                                                  s p qtyQty1

                                                                                                                  s1 p1 300 400

                                                                                                                  s1 p2 200

                                                                                                                  s1 p3 400 600

                                                                                                                  s1 p4 200 300

                                                                                                                  s1 p5 100

                                                                                                                  s1 p6 100 200

                                                                                                                  s2 p2 300 500

                                                                                                                  s3 p2 400

                                                                                                                  s4 p1 200 100

                                                                                                                  s4 p2 200

                                                                                                                  s4 p4 300

                                                                                                                  s4 p5 400

                                                                                                                  93

                                                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                  SP

                                                                                                                  s p qtyQty1

                                                                                                                  s1 p1 300 400

                                                                                                                  s1 p2 200

                                                                                                                  s1 p3 400 600

                                                                                                                  s1 p4 200 300

                                                                                                                  s1 p5 100

                                                                                                                  s1 p6 100 200

                                                                                                                  s2 p2 300 500

                                                                                                                  s3 p2 400

                                                                                                                  s4 p1 200 100

                                                                                                                  s4 p2 200

                                                                                                                  s4 p4 300

                                                                                                                  s4 p5 400

                                                                                                                  qty for partpredicted or

                                                                                                                  unknown Qty1

                                                                                                                  100 p5

                                                                                                                  100 predicted value 200

                                                                                                                  200 p2

                                                                                                                  200 predicted value 200

                                                                                                                  300 p4

                                                                                                                  300 predicted value 450

                                                                                                                  400 p2

                                                                                                                  400 p5

                                                                                                                  400 predicted value 600

                                                                                                                  94

                                                                                                                  Tendance

                                                                                                                  qty Qty1

                                                                                                                  100 200

                                                                                                                  200 300

                                                                                                                  300 400

                                                                                                                  400 600

                                                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                  Graph 3D avec Qty en abscisses

                                                                                                                  95

                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                  30102008 120 27102008 4

                                                                                                                  25102008 131 22102008 4

                                                                                                                  23102008 127 20102008 4

                                                                                                                  17102008 269 14102008 4

                                                                                                                  15102008 60 12102008 4

                                                                                                                  11102008 295 08102008 4

                                                                                                                  09102008 340 06102008 4

                                                                                                                  08102008 324 05102008 4

                                                                                                                  06102008 315 03102008 4

                                                                                                                  96

                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                  Graphique avec une info-bulle

                                                                                                                  97

                                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                  glissantes

                                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                                  bull MAVG

                                                                                                                  bull MSUM

                                                                                                                  bull MDIFF

                                                                                                                  bull Voir Teradata + loin

                                                                                                                  98

                                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                  99

                                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                                  100

                                                                                                                  Seacuteries financiegraveres

                                                                                                                  capital taux nval apregraves n ans

                                                                                                                  taux1val1 apregraves n ans

                                                                                                                  GainAbs GainRel

                                                                                                                  100 005 1 105 006 106 1 1

                                                                                                                  100 005 2 110 006 112 2 2

                                                                                                                  100 005 3 115 006 119 4 4

                                                                                                                  100 005 4 121 006 126 5 5

                                                                                                                  100 005 5 127 006 133 6 6

                                                                                                                  100 005 6 134 006 141 7 7

                                                                                                                  100 005 7 140 006 150 10 10

                                                                                                                  100 005 8 147 006 159 12 12

                                                                                                                  100 005 9 155 006 168 13 13

                                                                                                                  100 005 10 162 006 179 17 17

                                                                                                                  100 005 11 171 006 189 18 18

                                                                                                                  100 005 12 179 006 201 22 22

                                                                                                                  100 005 13 188 006 213 25 25

                                                                                                                  100 005 14 197 006 226 29 29

                                                                                                                  100 005 15 207 006 239 32 32

                                                                                                                  100 005 16 218 006 254 36 36

                                                                                                                  100 005 17 229 006 269 40 40

                                                                                                                  100 005 18 240 006 285 45 45

                                                                                                                  100 005 19 252 006 302 50 50

                                                                                                                  100 005 20 265 006 320 55 55

                                                                                                                  101

                                                                                                                  Seacuteries financiegraveres

                                                                                                                  102

                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                  financiers de la table Produits

                                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                  bull En ordre descendant de prix

                                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                  bull Plusieurs actionshellip

                                                                                                                  103

                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                  P prix

                                                                                                                  p3 200

                                                                                                                  p1 200

                                                                                                                  p2 400

                                                                                                                  p3 200

                                                                                                                  p4 100

                                                                                                                  p6 100

                                                                                                                  p5 300

                                                                                                                  p8 300

                                                                                                                  p7 400

                                                                                                                  p10 200

                                                                                                                  p12 300

                                                                                                                  p13 300

                                                                                                                  104

                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                  ORDER BY 4 desc 8 123

                                                                                                                  105

                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                  106

                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                  107

                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                  108

                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                  109

                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                  110

                                                                                                                  GROUPING SETS

                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                  HAVING tot-qty gt 100

                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                  111

                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                  112

                                                                                                                  ROLLUP

                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                  113

                                                                                                                  ROLLUP

                                                                                                                  114

                                                                                                                  ROLLUP

                                                                                                                  Et le CUBE

                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                  de certains nuls

                                                                                                                  115

                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                  Wiley (publ)

                                                                                                                  116

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                  117

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                  118

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  119

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  120

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  121

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  122

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                  123

                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                  Exeacutecution autonome

                                                                                                                  124

                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                  hellip

                                                                                                                  125

                                                                                                                  Liste de Choix Multibase

                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                  126

                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                  148

                                                                                                                  FIN

                                                                                                                  149

                                                                                                                  • SQL Avanceacute 2010
                                                                                                                  • Quoi amp Pourquoi
                                                                                                                  • Slide 3
                                                                                                                  • Synonymes
                                                                                                                  • Noms dattributs
                                                                                                                  • Slide 6
                                                                                                                  • Slide 7
                                                                                                                  • Slide 8
                                                                                                                  • Insertion dans une Vue
                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                  • MsAccess Leacutegendes
                                                                                                                  • Expressions de valeur
                                                                                                                  • Expressions de valeur (2)
                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                  • UNION et ORDER BY
                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                  • Preacutedicat TOP
                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                  • Clause BETWEEN
                                                                                                                  • Limitations de NOT
                                                                                                                  • ANY et ALL
                                                                                                                  • Injection SQL
                                                                                                                  • Injection SQL (2)
                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                  • Tabulations Croiseacutees
                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                  • XOR
                                                                                                                  • IMP
                                                                                                                  • Sous-requecirctes
                                                                                                                  • Sous-requecirctes (2)
                                                                                                                  • Sous-requecirctes (3)
                                                                                                                  • Sous-requecirctes (4)
                                                                                                                  • Sous-requecirctes (5)
                                                                                                                  • Sous-requecirctes (6)
                                                                                                                  • Sous-requecirctes (7)
                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                  • Valeurs nulles
                                                                                                                  • Valeurs nulles (2)
                                                                                                                  • Valeurs nulles (3)
                                                                                                                  • Valeurs nulles (4)
                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                  • Fonction Scalaire RND
                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                  • Fonctions Financiegraveres
                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                  • Fonction DDB
                                                                                                                  • Fonction DDB (2)
                                                                                                                  • Fonction PMT
                                                                                                                  • Fonction PMT (2)
                                                                                                                  • Placement agrave taux variable
                                                                                                                  • GROUP BY
                                                                                                                  • LIST Function
                                                                                                                  • LIST Function (2)
                                                                                                                  • GROUP BY avec WHERE
                                                                                                                  • GROUP BY (2)
                                                                                                                  • GROUP BY avec HAVING
                                                                                                                  • T-GROUP BY
                                                                                                                  • T-GROUP BY (2)
                                                                                                                  • T-GROUP BY (3)
                                                                                                                  • T-GROUP BY (4)
                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                  • Distribution
                                                                                                                  • Reacutesultat
                                                                                                                  • Distribution Cumulative
                                                                                                                  • Reacutesultat (2)
                                                                                                                  • Cateacutegorisation
                                                                                                                  • Cateacutegorisation (2)
                                                                                                                  • Cateacutegorisation (3)
                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                  • Tendance
                                                                                                                  • Moyenne Glissante
                                                                                                                  • Moyenne Glissante (2)
                                                                                                                  • Moyenne Glissante (3)
                                                                                                                  • Seacuteries financiegraveres
                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                  • GROUPING SETS
                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                  • Slide 112
                                                                                                                  • Slide 113
                                                                                                                  • Slide 114
                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                  • Liste de Choix Multibase
                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                  • FIN
                                                                                                                  • Slide 149

                                                                                                                    58

                                                                                                                    Fonctions Scalaires DateTemps

                                                                                                                    SELECT Now() AS now TimeValue(Now()) AS timevalue TimeValue(Now())+TimeValue(Now()) AS [adding timevalues] hour(now()) AS [hour]

                                                                                                                    month(now()) AS [month] weekday(datevalue(now())) AS datevalue monthname(month(now())) AS monthname

                                                                                                                    weekday(day(now())-1) AS [day]FROM S

                                                                                                                    bull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-tempsbull Notez lrsquoerreur non-signaleacutee drsquoaddition de date-temps (anneacutee 1899)

                                                                                                                    59

                                                                                                                    Fonctions Scalaires DateTemps

                                                                                                                    DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                                    Interval Explanation

                                                                                                                    Yyyy Year

                                                                                                                    q Quarter

                                                                                                                    m Month

                                                                                                                    y Day of year

                                                                                                                    d Day

                                                                                                                    w Weekday

                                                                                                                    ww Week

                                                                                                                    h Hour

                                                                                                                    n Minute

                                                                                                                    s Second

                                                                                                                    60

                                                                                                                    Fonctions Scalaires DateTemps

                                                                                                                    SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                                    Test DateDiff

                                                                                                                    now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                                    bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                                    61

                                                                                                                    Fonctions Scalaires DateTemps

                                                                                                                    bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                                    Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                                    hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                                    drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                                    62

                                                                                                                    Fonction Scalaire RND

                                                                                                                    bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                    hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                                                                    echantillon s rank

                                                                                                                    s1 502628087997437E-02

                                                                                                                    s4 0518015921115875

                                                                                                                    s3 075702953338623

                                                                                                                    63

                                                                                                                    Fonction Scalaire RND

                                                                                                                    bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                    FROM SPORDER BY rnd(qty) DESC

                                                                                                                    OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                    Votre commentaire ici

                                                                                                                    64

                                                                                                                    Fonctions Financiegraveres

                                                                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                    65

                                                                                                                    Fonctions Financiegraveres

                                                                                                                    Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                    pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                    DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                    Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                    66

                                                                                                                    Fonction DDB

                                                                                                                    insert into DDB (cost salvage life factor amortiss period)

                                                                                                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                    DDB(cost salvage life period factor) as amortiss period

                                                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                    67

                                                                                                                    Fonction DDB

                                                                                                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                    68

                                                                                                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                    nombres neacutegatifs

                                                                                                                    Fonction PMT

                                                                                                                    69

                                                                                                                    Fonction PMT

                                                                                                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                    Fonction PMT calcul dannuiteacute demprunt

                                                                                                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                    preacutesentevaleur_payeacutee surprime

                                                                                                                    -16049 005 20 200000 -320980 -120980

                                                                                                                    70

                                                                                                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                    Et les nuls que log ne supporte pas

                                                                                                                    Anneacutee relative

                                                                                                                    Taux

                                                                                                                    1 4

                                                                                                                    2 4

                                                                                                                    3 3

                                                                                                                    4 5

                                                                                                                    5 5

                                                                                                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                    71

                                                                                                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                    est eacutequivalente agrave

                                                                                                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                    WHERE XP = SPP) FROM SP

                                                                                                                    Testez

                                                                                                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                    72

                                                                                                                    LIST Function La requecircte

                                                                                                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                    Comme les tabulations croiseacutees

                                                                                                                    ndash Mais en + simple

                                                                                                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                    ndash En mono attribut (2004)

                                                                                                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                    sous-formulaires

                                                                                                                    73

                                                                                                                    LIST Function

                                                                                                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                    74

                                                                                                                    GROUP BY avec WHERE

                                                                                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                    75

                                                                                                                    GROUP BY

                                                                                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                    Pourquoi

                                                                                                                    76

                                                                                                                    GROUP BY avec HAVING

                                                                                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                    77

                                                                                                                    T-GROUP BY Proposeacute pour SQL

                                                                                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                    Le rocircle de -join par rapport agrave equi-join

                                                                                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                    78

                                                                                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                    FROM SP Vrai ou Faux

                                                                                                                    79

                                                                                                                    T-GROUP BY

                                                                                                                    Reacutesultat

                                                                                                                    part avg_qty_other_parts part_avg_qty

                                                                                                                    p1 250 300

                                                                                                                    p2 262 250

                                                                                                                    p3 245 400

                                                                                                                    p4 260 250

                                                                                                                    p5 260 250

                                                                                                                    p6 272 100

                                                                                                                    80

                                                                                                                    T-GROUP BY

                                                                                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                    81

                                                                                                                    Rangs Non-Denses(Non Dense Ranking)

                                                                                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                    s p qtyND-rank

                                                                                                                    s4 p5 400 1

                                                                                                                    s3 p2 400 1

                                                                                                                    s1 p3 400 1

                                                                                                                    s4 p4 300 4

                                                                                                                    s2 p2 300 4

                                                                                                                    s1 p1 300 4

                                                                                                                    s4 p2 200 7

                                                                                                                    s1 p4 200 7

                                                                                                                    s1 p2 200 7

                                                                                                                    s4 p1 200 7

                                                                                                                    s1 p6 100 11

                                                                                                                    s1 p5 100 11

                                                                                                                    82

                                                                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                                                                    s p qty ND-rank

                                                                                                                    s4 p5 400 1

                                                                                                                    s3 p2 400 1

                                                                                                                    s1 p3 400 1

                                                                                                                    s4 p4 300 4

                                                                                                                    s2 p2 300 4

                                                                                                                    s1 p1 300 4

                                                                                                                    s4 p2 200 7

                                                                                                                    s1 p4 200 7

                                                                                                                    s1 p2 200 7

                                                                                                                    s4 p1 200 7

                                                                                                                    s1 p6 100 11

                                                                                                                    s1 p5 100 11

                                                                                                                    83

                                                                                                                    Rangs Denses(Dense Ranking)

                                                                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                    s p qtyD-rank

                                                                                                                    s1 p3 400 1

                                                                                                                    s3 p2 400 1

                                                                                                                    s4 p5 400 1

                                                                                                                    s1 p1 300 2

                                                                                                                    s2 p2 300 2

                                                                                                                    s4 p4 300 2

                                                                                                                    s1 p4 200 3

                                                                                                                    s1 p2 200 3

                                                                                                                    s4 p2 200 3

                                                                                                                    s4 p1 200 3

                                                                                                                    s1 p6 100 4

                                                                                                                    s1 p5 100 4

                                                                                                                    84

                                                                                                                    Rangs DensesGraphique MsAccess

                                                                                                                    s p qty D-rank

                                                                                                                    s1 p3 400 1

                                                                                                                    s3 p2 400 1

                                                                                                                    s4 p5 400 1

                                                                                                                    s1 p1 300 2

                                                                                                                    s2 p2 300 2

                                                                                                                    s4 p4 300 2

                                                                                                                    s1 p4 200 3

                                                                                                                    s1 p2 200 3

                                                                                                                    s4 p2 200 3

                                                                                                                    s4 p1 200 3

                                                                                                                    s1 p6 100 4

                                                                                                                    s1 p5 100 4

                                                                                                                    85

                                                                                                                    Distribution

                                                                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                    86

                                                                                                                    Reacutesultat

                                                                                                                    s Distribution

                                                                                                                    s1 0419

                                                                                                                    s2 0097

                                                                                                                    s3 0129

                                                                                                                    s4 0355

                                                                                                                    87

                                                                                                                    Distribution Cumulative

                                                                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                    FROM SP

                                                                                                                    ORDER BY SP[s]

                                                                                                                    88

                                                                                                                    Reacutesultat

                                                                                                                    sDistribution Cumuleacutee

                                                                                                                    s1 0419

                                                                                                                    s2 0516

                                                                                                                    s3 0645

                                                                                                                    s4 1

                                                                                                                    89

                                                                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                    90

                                                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                    FROM S

                                                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                    s1 Smith Paris good good

                                                                                                                    s2 Jones 100 london good VGood

                                                                                                                    s3 Blake 30 Paris good good

                                                                                                                    s4 Clark 10 london OK OK

                                                                                                                    s5 Adams 30 Athens good good

                                                                                                                    bull Notez le traitement du null

                                                                                                                    91

                                                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                                                    FROM P where weight gt 13

                                                                                                                    union

                                                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                    UNION

                                                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                                                    ORDER BY warning DESC weight DESC

                                                                                                                    pname weight Warning

                                                                                                                    cam 19 Very Heavy

                                                                                                                    cog 19 Very Heavy

                                                                                                                    bolt 17 Very Heavy

                                                                                                                    nut 14 Very Heavy

                                                                                                                    screw 14 Very Heavy

                                                                                                                    nut 14 Quite Heavy

                                                                                                                    screw 14 Quite Heavy

                                                                                                                    screw 12 Quite Heavy

                                                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                    92

                                                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                    SP

                                                                                                                    s p qtyQty1

                                                                                                                    s1 p1 300 400

                                                                                                                    s1 p2 200

                                                                                                                    s1 p3 400 600

                                                                                                                    s1 p4 200 300

                                                                                                                    s1 p5 100

                                                                                                                    s1 p6 100 200

                                                                                                                    s2 p2 300 500

                                                                                                                    s3 p2 400

                                                                                                                    s4 p1 200 100

                                                                                                                    s4 p2 200

                                                                                                                    s4 p4 300

                                                                                                                    s4 p5 400

                                                                                                                    93

                                                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                    SP

                                                                                                                    s p qtyQty1

                                                                                                                    s1 p1 300 400

                                                                                                                    s1 p2 200

                                                                                                                    s1 p3 400 600

                                                                                                                    s1 p4 200 300

                                                                                                                    s1 p5 100

                                                                                                                    s1 p6 100 200

                                                                                                                    s2 p2 300 500

                                                                                                                    s3 p2 400

                                                                                                                    s4 p1 200 100

                                                                                                                    s4 p2 200

                                                                                                                    s4 p4 300

                                                                                                                    s4 p5 400

                                                                                                                    qty for partpredicted or

                                                                                                                    unknown Qty1

                                                                                                                    100 p5

                                                                                                                    100 predicted value 200

                                                                                                                    200 p2

                                                                                                                    200 predicted value 200

                                                                                                                    300 p4

                                                                                                                    300 predicted value 450

                                                                                                                    400 p2

                                                                                                                    400 p5

                                                                                                                    400 predicted value 600

                                                                                                                    94

                                                                                                                    Tendance

                                                                                                                    qty Qty1

                                                                                                                    100 200

                                                                                                                    200 300

                                                                                                                    300 400

                                                                                                                    400 600

                                                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                    Graph 3D avec Qty en abscisses

                                                                                                                    95

                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                    30102008 120 27102008 4

                                                                                                                    25102008 131 22102008 4

                                                                                                                    23102008 127 20102008 4

                                                                                                                    17102008 269 14102008 4

                                                                                                                    15102008 60 12102008 4

                                                                                                                    11102008 295 08102008 4

                                                                                                                    09102008 340 06102008 4

                                                                                                                    08102008 324 05102008 4

                                                                                                                    06102008 315 03102008 4

                                                                                                                    96

                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                    Graphique avec une info-bulle

                                                                                                                    97

                                                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                    glissantes

                                                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                                                    bull MAVG

                                                                                                                    bull MSUM

                                                                                                                    bull MDIFF

                                                                                                                    bull Voir Teradata + loin

                                                                                                                    98

                                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                    99

                                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                                    100

                                                                                                                    Seacuteries financiegraveres

                                                                                                                    capital taux nval apregraves n ans

                                                                                                                    taux1val1 apregraves n ans

                                                                                                                    GainAbs GainRel

                                                                                                                    100 005 1 105 006 106 1 1

                                                                                                                    100 005 2 110 006 112 2 2

                                                                                                                    100 005 3 115 006 119 4 4

                                                                                                                    100 005 4 121 006 126 5 5

                                                                                                                    100 005 5 127 006 133 6 6

                                                                                                                    100 005 6 134 006 141 7 7

                                                                                                                    100 005 7 140 006 150 10 10

                                                                                                                    100 005 8 147 006 159 12 12

                                                                                                                    100 005 9 155 006 168 13 13

                                                                                                                    100 005 10 162 006 179 17 17

                                                                                                                    100 005 11 171 006 189 18 18

                                                                                                                    100 005 12 179 006 201 22 22

                                                                                                                    100 005 13 188 006 213 25 25

                                                                                                                    100 005 14 197 006 226 29 29

                                                                                                                    100 005 15 207 006 239 32 32

                                                                                                                    100 005 16 218 006 254 36 36

                                                                                                                    100 005 17 229 006 269 40 40

                                                                                                                    100 005 18 240 006 285 45 45

                                                                                                                    100 005 19 252 006 302 50 50

                                                                                                                    100 005 20 265 006 320 55 55

                                                                                                                    101

                                                                                                                    Seacuteries financiegraveres

                                                                                                                    102

                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                    financiers de la table Produits

                                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                    bull En ordre descendant de prix

                                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                    bull Plusieurs actionshellip

                                                                                                                    103

                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                    P prix

                                                                                                                    p3 200

                                                                                                                    p1 200

                                                                                                                    p2 400

                                                                                                                    p3 200

                                                                                                                    p4 100

                                                                                                                    p6 100

                                                                                                                    p5 300

                                                                                                                    p8 300

                                                                                                                    p7 400

                                                                                                                    p10 200

                                                                                                                    p12 300

                                                                                                                    p13 300

                                                                                                                    104

                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                    ORDER BY 4 desc 8 123

                                                                                                                    105

                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                    106

                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                    107

                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                    108

                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                    109

                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                    110

                                                                                                                    GROUPING SETS

                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                    HAVING tot-qty gt 100

                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                    111

                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                    112

                                                                                                                    ROLLUP

                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                    113

                                                                                                                    ROLLUP

                                                                                                                    114

                                                                                                                    ROLLUP

                                                                                                                    Et le CUBE

                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                    de certains nuls

                                                                                                                    115

                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                    Wiley (publ)

                                                                                                                    116

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                    117

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                    118

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    119

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    120

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    121

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    122

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                    123

                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                    Exeacutecution autonome

                                                                                                                    124

                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                    hellip

                                                                                                                    125

                                                                                                                    Liste de Choix Multibase

                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                    126

                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                    148

                                                                                                                    FIN

                                                                                                                    149

                                                                                                                    • SQL Avanceacute 2010
                                                                                                                    • Quoi amp Pourquoi
                                                                                                                    • Slide 3
                                                                                                                    • Synonymes
                                                                                                                    • Noms dattributs
                                                                                                                    • Slide 6
                                                                                                                    • Slide 7
                                                                                                                    • Slide 8
                                                                                                                    • Insertion dans une Vue
                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                    • MsAccess Leacutegendes
                                                                                                                    • Expressions de valeur
                                                                                                                    • Expressions de valeur (2)
                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                    • UNION et ORDER BY
                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                    • Preacutedicat TOP
                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                    • Clause BETWEEN
                                                                                                                    • Limitations de NOT
                                                                                                                    • ANY et ALL
                                                                                                                    • Injection SQL
                                                                                                                    • Injection SQL (2)
                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                    • Tabulations Croiseacutees
                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                    • XOR
                                                                                                                    • IMP
                                                                                                                    • Sous-requecirctes
                                                                                                                    • Sous-requecirctes (2)
                                                                                                                    • Sous-requecirctes (3)
                                                                                                                    • Sous-requecirctes (4)
                                                                                                                    • Sous-requecirctes (5)
                                                                                                                    • Sous-requecirctes (6)
                                                                                                                    • Sous-requecirctes (7)
                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                    • Valeurs nulles
                                                                                                                    • Valeurs nulles (2)
                                                                                                                    • Valeurs nulles (3)
                                                                                                                    • Valeurs nulles (4)
                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                    • Fonction Scalaire RND
                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                    • Fonctions Financiegraveres
                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                    • Fonction DDB
                                                                                                                    • Fonction DDB (2)
                                                                                                                    • Fonction PMT
                                                                                                                    • Fonction PMT (2)
                                                                                                                    • Placement agrave taux variable
                                                                                                                    • GROUP BY
                                                                                                                    • LIST Function
                                                                                                                    • LIST Function (2)
                                                                                                                    • GROUP BY avec WHERE
                                                                                                                    • GROUP BY (2)
                                                                                                                    • GROUP BY avec HAVING
                                                                                                                    • T-GROUP BY
                                                                                                                    • T-GROUP BY (2)
                                                                                                                    • T-GROUP BY (3)
                                                                                                                    • T-GROUP BY (4)
                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                    • Distribution
                                                                                                                    • Reacutesultat
                                                                                                                    • Distribution Cumulative
                                                                                                                    • Reacutesultat (2)
                                                                                                                    • Cateacutegorisation
                                                                                                                    • Cateacutegorisation (2)
                                                                                                                    • Cateacutegorisation (3)
                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                    • Tendance
                                                                                                                    • Moyenne Glissante
                                                                                                                    • Moyenne Glissante (2)
                                                                                                                    • Moyenne Glissante (3)
                                                                                                                    • Seacuteries financiegraveres
                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                    • GROUPING SETS
                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                    • Slide 112
                                                                                                                    • Slide 113
                                                                                                                    • Slide 114
                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                    • Liste de Choix Multibase
                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                    • FIN
                                                                                                                    • Slide 149

                                                                                                                      59

                                                                                                                      Fonctions Scalaires DateTemps

                                                                                                                      DateDiff ( interval date1 date2 [firstdayofweek] [firstweekofyear])

                                                                                                                      Interval Explanation

                                                                                                                      Yyyy Year

                                                                                                                      q Quarter

                                                                                                                      m Month

                                                                                                                      y Day of year

                                                                                                                      d Day

                                                                                                                      w Weekday

                                                                                                                      ww Week

                                                                                                                      h Hour

                                                                                                                      n Minute

                                                                                                                      s Second

                                                                                                                      60

                                                                                                                      Fonctions Scalaires DateTemps

                                                                                                                      SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                                      Test DateDiff

                                                                                                                      now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                                      bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                                      61

                                                                                                                      Fonctions Scalaires DateTemps

                                                                                                                      bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                                      Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                                      hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                                      drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                                      62

                                                                                                                      Fonction Scalaire RND

                                                                                                                      bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                      hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                                                                      echantillon s rank

                                                                                                                      s1 502628087997437E-02

                                                                                                                      s4 0518015921115875

                                                                                                                      s3 075702953338623

                                                                                                                      63

                                                                                                                      Fonction Scalaire RND

                                                                                                                      bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                      FROM SPORDER BY rnd(qty) DESC

                                                                                                                      OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                      Votre commentaire ici

                                                                                                                      64

                                                                                                                      Fonctions Financiegraveres

                                                                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                      65

                                                                                                                      Fonctions Financiegraveres

                                                                                                                      Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                      pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                      DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                      Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                      66

                                                                                                                      Fonction DDB

                                                                                                                      insert into DDB (cost salvage life factor amortiss period)

                                                                                                                      select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                      DDB(cost salvage life period factor) as amortiss period

                                                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                      Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                      67

                                                                                                                      Fonction DDB

                                                                                                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                      68

                                                                                                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                      nombres neacutegatifs

                                                                                                                      Fonction PMT

                                                                                                                      69

                                                                                                                      Fonction PMT

                                                                                                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                      Fonction PMT calcul dannuiteacute demprunt

                                                                                                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                      preacutesentevaleur_payeacutee surprime

                                                                                                                      -16049 005 20 200000 -320980 -120980

                                                                                                                      70

                                                                                                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                      Et les nuls que log ne supporte pas

                                                                                                                      Anneacutee relative

                                                                                                                      Taux

                                                                                                                      1 4

                                                                                                                      2 4

                                                                                                                      3 3

                                                                                                                      4 5

                                                                                                                      5 5

                                                                                                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                      71

                                                                                                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                      est eacutequivalente agrave

                                                                                                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                      WHERE XP = SPP) FROM SP

                                                                                                                      Testez

                                                                                                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                      72

                                                                                                                      LIST Function La requecircte

                                                                                                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                      Comme les tabulations croiseacutees

                                                                                                                      ndash Mais en + simple

                                                                                                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                      ndash En mono attribut (2004)

                                                                                                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                      sous-formulaires

                                                                                                                      73

                                                                                                                      LIST Function

                                                                                                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                      74

                                                                                                                      GROUP BY avec WHERE

                                                                                                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                      75

                                                                                                                      GROUP BY

                                                                                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                      Pourquoi

                                                                                                                      76

                                                                                                                      GROUP BY avec HAVING

                                                                                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                      77

                                                                                                                      T-GROUP BY Proposeacute pour SQL

                                                                                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                      Le rocircle de -join par rapport agrave equi-join

                                                                                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                      78

                                                                                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                      FROM SP Vrai ou Faux

                                                                                                                      79

                                                                                                                      T-GROUP BY

                                                                                                                      Reacutesultat

                                                                                                                      part avg_qty_other_parts part_avg_qty

                                                                                                                      p1 250 300

                                                                                                                      p2 262 250

                                                                                                                      p3 245 400

                                                                                                                      p4 260 250

                                                                                                                      p5 260 250

                                                                                                                      p6 272 100

                                                                                                                      80

                                                                                                                      T-GROUP BY

                                                                                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                      81

                                                                                                                      Rangs Non-Denses(Non Dense Ranking)

                                                                                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                      s p qtyND-rank

                                                                                                                      s4 p5 400 1

                                                                                                                      s3 p2 400 1

                                                                                                                      s1 p3 400 1

                                                                                                                      s4 p4 300 4

                                                                                                                      s2 p2 300 4

                                                                                                                      s1 p1 300 4

                                                                                                                      s4 p2 200 7

                                                                                                                      s1 p4 200 7

                                                                                                                      s1 p2 200 7

                                                                                                                      s4 p1 200 7

                                                                                                                      s1 p6 100 11

                                                                                                                      s1 p5 100 11

                                                                                                                      82

                                                                                                                      Rangs Non-Denses(Graphique MsAccess)

                                                                                                                      s p qty ND-rank

                                                                                                                      s4 p5 400 1

                                                                                                                      s3 p2 400 1

                                                                                                                      s1 p3 400 1

                                                                                                                      s4 p4 300 4

                                                                                                                      s2 p2 300 4

                                                                                                                      s1 p1 300 4

                                                                                                                      s4 p2 200 7

                                                                                                                      s1 p4 200 7

                                                                                                                      s1 p2 200 7

                                                                                                                      s4 p1 200 7

                                                                                                                      s1 p6 100 11

                                                                                                                      s1 p5 100 11

                                                                                                                      83

                                                                                                                      Rangs Denses(Dense Ranking)

                                                                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                      s p qtyD-rank

                                                                                                                      s1 p3 400 1

                                                                                                                      s3 p2 400 1

                                                                                                                      s4 p5 400 1

                                                                                                                      s1 p1 300 2

                                                                                                                      s2 p2 300 2

                                                                                                                      s4 p4 300 2

                                                                                                                      s1 p4 200 3

                                                                                                                      s1 p2 200 3

                                                                                                                      s4 p2 200 3

                                                                                                                      s4 p1 200 3

                                                                                                                      s1 p6 100 4

                                                                                                                      s1 p5 100 4

                                                                                                                      84

                                                                                                                      Rangs DensesGraphique MsAccess

                                                                                                                      s p qty D-rank

                                                                                                                      s1 p3 400 1

                                                                                                                      s3 p2 400 1

                                                                                                                      s4 p5 400 1

                                                                                                                      s1 p1 300 2

                                                                                                                      s2 p2 300 2

                                                                                                                      s4 p4 300 2

                                                                                                                      s1 p4 200 3

                                                                                                                      s1 p2 200 3

                                                                                                                      s4 p2 200 3

                                                                                                                      s4 p1 200 3

                                                                                                                      s1 p6 100 4

                                                                                                                      s1 p5 100 4

                                                                                                                      85

                                                                                                                      Distribution

                                                                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                      86

                                                                                                                      Reacutesultat

                                                                                                                      s Distribution

                                                                                                                      s1 0419

                                                                                                                      s2 0097

                                                                                                                      s3 0129

                                                                                                                      s4 0355

                                                                                                                      87

                                                                                                                      Distribution Cumulative

                                                                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                      FROM SP

                                                                                                                      ORDER BY SP[s]

                                                                                                                      88

                                                                                                                      Reacutesultat

                                                                                                                      sDistribution Cumuleacutee

                                                                                                                      s1 0419

                                                                                                                      s2 0516

                                                                                                                      s3 0645

                                                                                                                      s4 1

                                                                                                                      89

                                                                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                      90

                                                                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                      FROM S

                                                                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                      s1 Smith Paris good good

                                                                                                                      s2 Jones 100 london good VGood

                                                                                                                      s3 Blake 30 Paris good good

                                                                                                                      s4 Clark 10 london OK OK

                                                                                                                      s5 Adams 30 Athens good good

                                                                                                                      bull Notez le traitement du null

                                                                                                                      91

                                                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                                                      FROM P where weight gt 13

                                                                                                                      union

                                                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                      UNION

                                                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                                                      ORDER BY warning DESC weight DESC

                                                                                                                      pname weight Warning

                                                                                                                      cam 19 Very Heavy

                                                                                                                      cog 19 Very Heavy

                                                                                                                      bolt 17 Very Heavy

                                                                                                                      nut 14 Very Heavy

                                                                                                                      screw 14 Very Heavy

                                                                                                                      nut 14 Quite Heavy

                                                                                                                      screw 14 Quite Heavy

                                                                                                                      screw 12 Quite Heavy

                                                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                      92

                                                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                      SP

                                                                                                                      s p qtyQty1

                                                                                                                      s1 p1 300 400

                                                                                                                      s1 p2 200

                                                                                                                      s1 p3 400 600

                                                                                                                      s1 p4 200 300

                                                                                                                      s1 p5 100

                                                                                                                      s1 p6 100 200

                                                                                                                      s2 p2 300 500

                                                                                                                      s3 p2 400

                                                                                                                      s4 p1 200 100

                                                                                                                      s4 p2 200

                                                                                                                      s4 p4 300

                                                                                                                      s4 p5 400

                                                                                                                      93

                                                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                      SP

                                                                                                                      s p qtyQty1

                                                                                                                      s1 p1 300 400

                                                                                                                      s1 p2 200

                                                                                                                      s1 p3 400 600

                                                                                                                      s1 p4 200 300

                                                                                                                      s1 p5 100

                                                                                                                      s1 p6 100 200

                                                                                                                      s2 p2 300 500

                                                                                                                      s3 p2 400

                                                                                                                      s4 p1 200 100

                                                                                                                      s4 p2 200

                                                                                                                      s4 p4 300

                                                                                                                      s4 p5 400

                                                                                                                      qty for partpredicted or

                                                                                                                      unknown Qty1

                                                                                                                      100 p5

                                                                                                                      100 predicted value 200

                                                                                                                      200 p2

                                                                                                                      200 predicted value 200

                                                                                                                      300 p4

                                                                                                                      300 predicted value 450

                                                                                                                      400 p2

                                                                                                                      400 p5

                                                                                                                      400 predicted value 600

                                                                                                                      94

                                                                                                                      Tendance

                                                                                                                      qty Qty1

                                                                                                                      100 200

                                                                                                                      200 300

                                                                                                                      300 400

                                                                                                                      400 600

                                                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                      Graph 3D avec Qty en abscisses

                                                                                                                      95

                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                      30102008 120 27102008 4

                                                                                                                      25102008 131 22102008 4

                                                                                                                      23102008 127 20102008 4

                                                                                                                      17102008 269 14102008 4

                                                                                                                      15102008 60 12102008 4

                                                                                                                      11102008 295 08102008 4

                                                                                                                      09102008 340 06102008 4

                                                                                                                      08102008 324 05102008 4

                                                                                                                      06102008 315 03102008 4

                                                                                                                      96

                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                      Graphique avec une info-bulle

                                                                                                                      97

                                                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                      glissantes

                                                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                                                      bull MAVG

                                                                                                                      bull MSUM

                                                                                                                      bull MDIFF

                                                                                                                      bull Voir Teradata + loin

                                                                                                                      98

                                                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                      99

                                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                                      100

                                                                                                                      Seacuteries financiegraveres

                                                                                                                      capital taux nval apregraves n ans

                                                                                                                      taux1val1 apregraves n ans

                                                                                                                      GainAbs GainRel

                                                                                                                      100 005 1 105 006 106 1 1

                                                                                                                      100 005 2 110 006 112 2 2

                                                                                                                      100 005 3 115 006 119 4 4

                                                                                                                      100 005 4 121 006 126 5 5

                                                                                                                      100 005 5 127 006 133 6 6

                                                                                                                      100 005 6 134 006 141 7 7

                                                                                                                      100 005 7 140 006 150 10 10

                                                                                                                      100 005 8 147 006 159 12 12

                                                                                                                      100 005 9 155 006 168 13 13

                                                                                                                      100 005 10 162 006 179 17 17

                                                                                                                      100 005 11 171 006 189 18 18

                                                                                                                      100 005 12 179 006 201 22 22

                                                                                                                      100 005 13 188 006 213 25 25

                                                                                                                      100 005 14 197 006 226 29 29

                                                                                                                      100 005 15 207 006 239 32 32

                                                                                                                      100 005 16 218 006 254 36 36

                                                                                                                      100 005 17 229 006 269 40 40

                                                                                                                      100 005 18 240 006 285 45 45

                                                                                                                      100 005 19 252 006 302 50 50

                                                                                                                      100 005 20 265 006 320 55 55

                                                                                                                      101

                                                                                                                      Seacuteries financiegraveres

                                                                                                                      102

                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                      financiers de la table Produits

                                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                      bull En ordre descendant de prix

                                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                      bull Plusieurs actionshellip

                                                                                                                      103

                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                      P prix

                                                                                                                      p3 200

                                                                                                                      p1 200

                                                                                                                      p2 400

                                                                                                                      p3 200

                                                                                                                      p4 100

                                                                                                                      p6 100

                                                                                                                      p5 300

                                                                                                                      p8 300

                                                                                                                      p7 400

                                                                                                                      p10 200

                                                                                                                      p12 300

                                                                                                                      p13 300

                                                                                                                      104

                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                      ORDER BY 4 desc 8 123

                                                                                                                      105

                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                      106

                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                      107

                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                      108

                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                      109

                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                      110

                                                                                                                      GROUPING SETS

                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                      HAVING tot-qty gt 100

                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                      111

                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                      112

                                                                                                                      ROLLUP

                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                      113

                                                                                                                      ROLLUP

                                                                                                                      114

                                                                                                                      ROLLUP

                                                                                                                      Et le CUBE

                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                      de certains nuls

                                                                                                                      115

                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                      Wiley (publ)

                                                                                                                      116

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                      117

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                      118

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      119

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      120

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      121

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      122

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                      123

                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                      Exeacutecution autonome

                                                                                                                      124

                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                      hellip

                                                                                                                      125

                                                                                                                      Liste de Choix Multibase

                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                      126

                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                      148

                                                                                                                      FIN

                                                                                                                      149

                                                                                                                      • SQL Avanceacute 2010
                                                                                                                      • Quoi amp Pourquoi
                                                                                                                      • Slide 3
                                                                                                                      • Synonymes
                                                                                                                      • Noms dattributs
                                                                                                                      • Slide 6
                                                                                                                      • Slide 7
                                                                                                                      • Slide 8
                                                                                                                      • Insertion dans une Vue
                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                      • MsAccess Leacutegendes
                                                                                                                      • Expressions de valeur
                                                                                                                      • Expressions de valeur (2)
                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                      • UNION et ORDER BY
                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                      • Preacutedicat TOP
                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                      • Clause BETWEEN
                                                                                                                      • Limitations de NOT
                                                                                                                      • ANY et ALL
                                                                                                                      • Injection SQL
                                                                                                                      • Injection SQL (2)
                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                      • Tabulations Croiseacutees
                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                      • XOR
                                                                                                                      • IMP
                                                                                                                      • Sous-requecirctes
                                                                                                                      • Sous-requecirctes (2)
                                                                                                                      • Sous-requecirctes (3)
                                                                                                                      • Sous-requecirctes (4)
                                                                                                                      • Sous-requecirctes (5)
                                                                                                                      • Sous-requecirctes (6)
                                                                                                                      • Sous-requecirctes (7)
                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                      • Valeurs nulles
                                                                                                                      • Valeurs nulles (2)
                                                                                                                      • Valeurs nulles (3)
                                                                                                                      • Valeurs nulles (4)
                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                      • Fonction Scalaire RND
                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                      • Fonctions Financiegraveres
                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                      • Fonction DDB
                                                                                                                      • Fonction DDB (2)
                                                                                                                      • Fonction PMT
                                                                                                                      • Fonction PMT (2)
                                                                                                                      • Placement agrave taux variable
                                                                                                                      • GROUP BY
                                                                                                                      • LIST Function
                                                                                                                      • LIST Function (2)
                                                                                                                      • GROUP BY avec WHERE
                                                                                                                      • GROUP BY (2)
                                                                                                                      • GROUP BY avec HAVING
                                                                                                                      • T-GROUP BY
                                                                                                                      • T-GROUP BY (2)
                                                                                                                      • T-GROUP BY (3)
                                                                                                                      • T-GROUP BY (4)
                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                      • Distribution
                                                                                                                      • Reacutesultat
                                                                                                                      • Distribution Cumulative
                                                                                                                      • Reacutesultat (2)
                                                                                                                      • Cateacutegorisation
                                                                                                                      • Cateacutegorisation (2)
                                                                                                                      • Cateacutegorisation (3)
                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                      • Tendance
                                                                                                                      • Moyenne Glissante
                                                                                                                      • Moyenne Glissante (2)
                                                                                                                      • Moyenne Glissante (3)
                                                                                                                      • Seacuteries financiegraveres
                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                      • GROUPING SETS
                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                      • Slide 112
                                                                                                                      • Slide 113
                                                                                                                      • Slide 114
                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                      • Liste de Choix Multibase
                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                      • FIN
                                                                                                                      • Slide 149

                                                                                                                        60

                                                                                                                        Fonctions Scalaires DateTemps

                                                                                                                        SELECT now() as now 11072009 094009 as DateTest DateDiff(n now DateTest) as DiffMin DateDiff(h now DateTest) as DiffHour

                                                                                                                        Test DateDiff

                                                                                                                        now DateTest DiffMin DiffHour07112009 120326 07112009 094009 -143 -3

                                                                                                                        bull Voir le Web pour les paramegravetres optionnels de DateDiff (DiffDate en mode creacuteation (QBE)

                                                                                                                        61

                                                                                                                        Fonctions Scalaires DateTemps

                                                                                                                        bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                                        Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                                        hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                                        drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                                        62

                                                                                                                        Fonction Scalaire RND

                                                                                                                        bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                        hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                                                                        echantillon s rank

                                                                                                                        s1 502628087997437E-02

                                                                                                                        s4 0518015921115875

                                                                                                                        s3 075702953338623

                                                                                                                        63

                                                                                                                        Fonction Scalaire RND

                                                                                                                        bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                        FROM SPORDER BY rnd(qty) DESC

                                                                                                                        OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                        Votre commentaire ici

                                                                                                                        64

                                                                                                                        Fonctions Financiegraveres

                                                                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                        65

                                                                                                                        Fonctions Financiegraveres

                                                                                                                        Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                        pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                        DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                        Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                        66

                                                                                                                        Fonction DDB

                                                                                                                        insert into DDB (cost salvage life factor amortiss period)

                                                                                                                        select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                        DDB(cost salvage life period factor) as amortiss period

                                                                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                        Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                        67

                                                                                                                        Fonction DDB

                                                                                                                        INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                        SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                        DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                        Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                        68

                                                                                                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                        nombres neacutegatifs

                                                                                                                        Fonction PMT

                                                                                                                        69

                                                                                                                        Fonction PMT

                                                                                                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                        Fonction PMT calcul dannuiteacute demprunt

                                                                                                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                        preacutesentevaleur_payeacutee surprime

                                                                                                                        -16049 005 20 200000 -320980 -120980

                                                                                                                        70

                                                                                                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                        Et les nuls que log ne supporte pas

                                                                                                                        Anneacutee relative

                                                                                                                        Taux

                                                                                                                        1 4

                                                                                                                        2 4

                                                                                                                        3 3

                                                                                                                        4 5

                                                                                                                        5 5

                                                                                                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                        71

                                                                                                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                        est eacutequivalente agrave

                                                                                                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                        WHERE XP = SPP) FROM SP

                                                                                                                        Testez

                                                                                                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                        72

                                                                                                                        LIST Function La requecircte

                                                                                                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                        Comme les tabulations croiseacutees

                                                                                                                        ndash Mais en + simple

                                                                                                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                        ndash En mono attribut (2004)

                                                                                                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                        sous-formulaires

                                                                                                                        73

                                                                                                                        LIST Function

                                                                                                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                        74

                                                                                                                        GROUP BY avec WHERE

                                                                                                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                        75

                                                                                                                        GROUP BY

                                                                                                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                        Pourquoi

                                                                                                                        76

                                                                                                                        GROUP BY avec HAVING

                                                                                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                        77

                                                                                                                        T-GROUP BY Proposeacute pour SQL

                                                                                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                        Le rocircle de -join par rapport agrave equi-join

                                                                                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                        78

                                                                                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                        FROM SP Vrai ou Faux

                                                                                                                        79

                                                                                                                        T-GROUP BY

                                                                                                                        Reacutesultat

                                                                                                                        part avg_qty_other_parts part_avg_qty

                                                                                                                        p1 250 300

                                                                                                                        p2 262 250

                                                                                                                        p3 245 400

                                                                                                                        p4 260 250

                                                                                                                        p5 260 250

                                                                                                                        p6 272 100

                                                                                                                        80

                                                                                                                        T-GROUP BY

                                                                                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                        81

                                                                                                                        Rangs Non-Denses(Non Dense Ranking)

                                                                                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                        s p qtyND-rank

                                                                                                                        s4 p5 400 1

                                                                                                                        s3 p2 400 1

                                                                                                                        s1 p3 400 1

                                                                                                                        s4 p4 300 4

                                                                                                                        s2 p2 300 4

                                                                                                                        s1 p1 300 4

                                                                                                                        s4 p2 200 7

                                                                                                                        s1 p4 200 7

                                                                                                                        s1 p2 200 7

                                                                                                                        s4 p1 200 7

                                                                                                                        s1 p6 100 11

                                                                                                                        s1 p5 100 11

                                                                                                                        82

                                                                                                                        Rangs Non-Denses(Graphique MsAccess)

                                                                                                                        s p qty ND-rank

                                                                                                                        s4 p5 400 1

                                                                                                                        s3 p2 400 1

                                                                                                                        s1 p3 400 1

                                                                                                                        s4 p4 300 4

                                                                                                                        s2 p2 300 4

                                                                                                                        s1 p1 300 4

                                                                                                                        s4 p2 200 7

                                                                                                                        s1 p4 200 7

                                                                                                                        s1 p2 200 7

                                                                                                                        s4 p1 200 7

                                                                                                                        s1 p6 100 11

                                                                                                                        s1 p5 100 11

                                                                                                                        83

                                                                                                                        Rangs Denses(Dense Ranking)

                                                                                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                        s p qtyD-rank

                                                                                                                        s1 p3 400 1

                                                                                                                        s3 p2 400 1

                                                                                                                        s4 p5 400 1

                                                                                                                        s1 p1 300 2

                                                                                                                        s2 p2 300 2

                                                                                                                        s4 p4 300 2

                                                                                                                        s1 p4 200 3

                                                                                                                        s1 p2 200 3

                                                                                                                        s4 p2 200 3

                                                                                                                        s4 p1 200 3

                                                                                                                        s1 p6 100 4

                                                                                                                        s1 p5 100 4

                                                                                                                        84

                                                                                                                        Rangs DensesGraphique MsAccess

                                                                                                                        s p qty D-rank

                                                                                                                        s1 p3 400 1

                                                                                                                        s3 p2 400 1

                                                                                                                        s4 p5 400 1

                                                                                                                        s1 p1 300 2

                                                                                                                        s2 p2 300 2

                                                                                                                        s4 p4 300 2

                                                                                                                        s1 p4 200 3

                                                                                                                        s1 p2 200 3

                                                                                                                        s4 p2 200 3

                                                                                                                        s4 p1 200 3

                                                                                                                        s1 p6 100 4

                                                                                                                        s1 p5 100 4

                                                                                                                        85

                                                                                                                        Distribution

                                                                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                        86

                                                                                                                        Reacutesultat

                                                                                                                        s Distribution

                                                                                                                        s1 0419

                                                                                                                        s2 0097

                                                                                                                        s3 0129

                                                                                                                        s4 0355

                                                                                                                        87

                                                                                                                        Distribution Cumulative

                                                                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                        FROM SP

                                                                                                                        ORDER BY SP[s]

                                                                                                                        88

                                                                                                                        Reacutesultat

                                                                                                                        sDistribution Cumuleacutee

                                                                                                                        s1 0419

                                                                                                                        s2 0516

                                                                                                                        s3 0645

                                                                                                                        s4 1

                                                                                                                        89

                                                                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                        90

                                                                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                        FROM S

                                                                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                        s1 Smith Paris good good

                                                                                                                        s2 Jones 100 london good VGood

                                                                                                                        s3 Blake 30 Paris good good

                                                                                                                        s4 Clark 10 london OK OK

                                                                                                                        s5 Adams 30 Athens good good

                                                                                                                        bull Notez le traitement du null

                                                                                                                        91

                                                                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                                                                        FROM P where weight gt 13

                                                                                                                        union

                                                                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                        UNION

                                                                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                                                                        ORDER BY warning DESC weight DESC

                                                                                                                        pname weight Warning

                                                                                                                        cam 19 Very Heavy

                                                                                                                        cog 19 Very Heavy

                                                                                                                        bolt 17 Very Heavy

                                                                                                                        nut 14 Very Heavy

                                                                                                                        screw 14 Very Heavy

                                                                                                                        nut 14 Quite Heavy

                                                                                                                        screw 14 Quite Heavy

                                                                                                                        screw 12 Quite Heavy

                                                                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                        92

                                                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                        SP

                                                                                                                        s p qtyQty1

                                                                                                                        s1 p1 300 400

                                                                                                                        s1 p2 200

                                                                                                                        s1 p3 400 600

                                                                                                                        s1 p4 200 300

                                                                                                                        s1 p5 100

                                                                                                                        s1 p6 100 200

                                                                                                                        s2 p2 300 500

                                                                                                                        s3 p2 400

                                                                                                                        s4 p1 200 100

                                                                                                                        s4 p2 200

                                                                                                                        s4 p4 300

                                                                                                                        s4 p5 400

                                                                                                                        93

                                                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                        SP

                                                                                                                        s p qtyQty1

                                                                                                                        s1 p1 300 400

                                                                                                                        s1 p2 200

                                                                                                                        s1 p3 400 600

                                                                                                                        s1 p4 200 300

                                                                                                                        s1 p5 100

                                                                                                                        s1 p6 100 200

                                                                                                                        s2 p2 300 500

                                                                                                                        s3 p2 400

                                                                                                                        s4 p1 200 100

                                                                                                                        s4 p2 200

                                                                                                                        s4 p4 300

                                                                                                                        s4 p5 400

                                                                                                                        qty for partpredicted or

                                                                                                                        unknown Qty1

                                                                                                                        100 p5

                                                                                                                        100 predicted value 200

                                                                                                                        200 p2

                                                                                                                        200 predicted value 200

                                                                                                                        300 p4

                                                                                                                        300 predicted value 450

                                                                                                                        400 p2

                                                                                                                        400 p5

                                                                                                                        400 predicted value 600

                                                                                                                        94

                                                                                                                        Tendance

                                                                                                                        qty Qty1

                                                                                                                        100 200

                                                                                                                        200 300

                                                                                                                        300 400

                                                                                                                        400 600

                                                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                        Graph 3D avec Qty en abscisses

                                                                                                                        95

                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                        30102008 120 27102008 4

                                                                                                                        25102008 131 22102008 4

                                                                                                                        23102008 127 20102008 4

                                                                                                                        17102008 269 14102008 4

                                                                                                                        15102008 60 12102008 4

                                                                                                                        11102008 295 08102008 4

                                                                                                                        09102008 340 06102008 4

                                                                                                                        08102008 324 05102008 4

                                                                                                                        06102008 315 03102008 4

                                                                                                                        96

                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                        Graphique avec une info-bulle

                                                                                                                        97

                                                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                        glissantes

                                                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                                                        bull MAVG

                                                                                                                        bull MSUM

                                                                                                                        bull MDIFF

                                                                                                                        bull Voir Teradata + loin

                                                                                                                        98

                                                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                        99

                                                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                                                        100

                                                                                                                        Seacuteries financiegraveres

                                                                                                                        capital taux nval apregraves n ans

                                                                                                                        taux1val1 apregraves n ans

                                                                                                                        GainAbs GainRel

                                                                                                                        100 005 1 105 006 106 1 1

                                                                                                                        100 005 2 110 006 112 2 2

                                                                                                                        100 005 3 115 006 119 4 4

                                                                                                                        100 005 4 121 006 126 5 5

                                                                                                                        100 005 5 127 006 133 6 6

                                                                                                                        100 005 6 134 006 141 7 7

                                                                                                                        100 005 7 140 006 150 10 10

                                                                                                                        100 005 8 147 006 159 12 12

                                                                                                                        100 005 9 155 006 168 13 13

                                                                                                                        100 005 10 162 006 179 17 17

                                                                                                                        100 005 11 171 006 189 18 18

                                                                                                                        100 005 12 179 006 201 22 22

                                                                                                                        100 005 13 188 006 213 25 25

                                                                                                                        100 005 14 197 006 226 29 29

                                                                                                                        100 005 15 207 006 239 32 32

                                                                                                                        100 005 16 218 006 254 36 36

                                                                                                                        100 005 17 229 006 269 40 40

                                                                                                                        100 005 18 240 006 285 45 45

                                                                                                                        100 005 19 252 006 302 50 50

                                                                                                                        100 005 20 265 006 320 55 55

                                                                                                                        101

                                                                                                                        Seacuteries financiegraveres

                                                                                                                        102

                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                        financiers de la table Produits

                                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                        bull En ordre descendant de prix

                                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                        bull Plusieurs actionshellip

                                                                                                                        103

                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                        P prix

                                                                                                                        p3 200

                                                                                                                        p1 200

                                                                                                                        p2 400

                                                                                                                        p3 200

                                                                                                                        p4 100

                                                                                                                        p6 100

                                                                                                                        p5 300

                                                                                                                        p8 300

                                                                                                                        p7 400

                                                                                                                        p10 200

                                                                                                                        p12 300

                                                                                                                        p13 300

                                                                                                                        104

                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                        ORDER BY 4 desc 8 123

                                                                                                                        105

                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                        106

                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                        107

                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                        108

                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                        109

                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                        110

                                                                                                                        GROUPING SETS

                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                        HAVING tot-qty gt 100

                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                        111

                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                        112

                                                                                                                        ROLLUP

                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                        113

                                                                                                                        ROLLUP

                                                                                                                        114

                                                                                                                        ROLLUP

                                                                                                                        Et le CUBE

                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                        de certains nuls

                                                                                                                        115

                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                        Wiley (publ)

                                                                                                                        116

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                        117

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                        118

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        119

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        120

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        121

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        122

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                        123

                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                        Exeacutecution autonome

                                                                                                                        124

                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                        hellip

                                                                                                                        125

                                                                                                                        Liste de Choix Multibase

                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                        126

                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                        148

                                                                                                                        FIN

                                                                                                                        149

                                                                                                                        • SQL Avanceacute 2010
                                                                                                                        • Quoi amp Pourquoi
                                                                                                                        • Slide 3
                                                                                                                        • Synonymes
                                                                                                                        • Noms dattributs
                                                                                                                        • Slide 6
                                                                                                                        • Slide 7
                                                                                                                        • Slide 8
                                                                                                                        • Insertion dans une Vue
                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                        • MsAccess Leacutegendes
                                                                                                                        • Expressions de valeur
                                                                                                                        • Expressions de valeur (2)
                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                        • UNION et ORDER BY
                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                        • Preacutedicat TOP
                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                        • Clause BETWEEN
                                                                                                                        • Limitations de NOT
                                                                                                                        • ANY et ALL
                                                                                                                        • Injection SQL
                                                                                                                        • Injection SQL (2)
                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                        • Tabulations Croiseacutees
                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                        • XOR
                                                                                                                        • IMP
                                                                                                                        • Sous-requecirctes
                                                                                                                        • Sous-requecirctes (2)
                                                                                                                        • Sous-requecirctes (3)
                                                                                                                        • Sous-requecirctes (4)
                                                                                                                        • Sous-requecirctes (5)
                                                                                                                        • Sous-requecirctes (6)
                                                                                                                        • Sous-requecirctes (7)
                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                        • Valeurs nulles
                                                                                                                        • Valeurs nulles (2)
                                                                                                                        • Valeurs nulles (3)
                                                                                                                        • Valeurs nulles (4)
                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                        • Fonction Scalaire RND
                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                        • Fonctions Financiegraveres
                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                        • Fonction DDB
                                                                                                                        • Fonction DDB (2)
                                                                                                                        • Fonction PMT
                                                                                                                        • Fonction PMT (2)
                                                                                                                        • Placement agrave taux variable
                                                                                                                        • GROUP BY
                                                                                                                        • LIST Function
                                                                                                                        • LIST Function (2)
                                                                                                                        • GROUP BY avec WHERE
                                                                                                                        • GROUP BY (2)
                                                                                                                        • GROUP BY avec HAVING
                                                                                                                        • T-GROUP BY
                                                                                                                        • T-GROUP BY (2)
                                                                                                                        • T-GROUP BY (3)
                                                                                                                        • T-GROUP BY (4)
                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                        • Distribution
                                                                                                                        • Reacutesultat
                                                                                                                        • Distribution Cumulative
                                                                                                                        • Reacutesultat (2)
                                                                                                                        • Cateacutegorisation
                                                                                                                        • Cateacutegorisation (2)
                                                                                                                        • Cateacutegorisation (3)
                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                        • Tendance
                                                                                                                        • Moyenne Glissante
                                                                                                                        • Moyenne Glissante (2)
                                                                                                                        • Moyenne Glissante (3)
                                                                                                                        • Seacuteries financiegraveres
                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                        • GROUPING SETS
                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                        • Slide 112
                                                                                                                        • Slide 113
                                                                                                                        • Slide 114
                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                        • Liste de Choix Multibase
                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                        • FIN
                                                                                                                        • Slide 149

                                                                                                                          61

                                                                                                                          Fonctions Scalaires DateTemps

                                                                                                                          bull Clause LIKE supporte un format speacutecifique pour les dates hellip DateV lsquoLike Jan2009rsquohellip

                                                                                                                          Liste tous les tuples ougrave DateV est de Janvier 2009

                                                                                                                          hellip DateV lsquoLike 152009rsquohellip Liste tous les tuples ougrave DateV est le 15

                                                                                                                          drsquoun mois de 2009 On peut se deacutebrouiller autrement Comment

                                                                                                                          62

                                                                                                                          Fonction Scalaire RND

                                                                                                                          bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                          hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                                                                          echantillon s rank

                                                                                                                          s1 502628087997437E-02

                                                                                                                          s4 0518015921115875

                                                                                                                          s3 075702953338623

                                                                                                                          63

                                                                                                                          Fonction Scalaire RND

                                                                                                                          bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                          FROM SPORDER BY rnd(qty) DESC

                                                                                                                          OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                          Votre commentaire ici

                                                                                                                          64

                                                                                                                          Fonctions Financiegraveres

                                                                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                          65

                                                                                                                          Fonctions Financiegraveres

                                                                                                                          Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                          pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                          DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                          Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                          66

                                                                                                                          Fonction DDB

                                                                                                                          insert into DDB (cost salvage life factor amortiss period)

                                                                                                                          select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                          DDB(cost salvage life period factor) as amortiss period

                                                                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                          Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                          67

                                                                                                                          Fonction DDB

                                                                                                                          INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                          SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                          DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                          Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                          68

                                                                                                                          Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                          en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                          Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                          nombres neacutegatifs

                                                                                                                          Fonction PMT

                                                                                                                          69

                                                                                                                          Fonction PMT

                                                                                                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                          Fonction PMT calcul dannuiteacute demprunt

                                                                                                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                          preacutesentevaleur_payeacutee surprime

                                                                                                                          -16049 005 20 200000 -320980 -120980

                                                                                                                          70

                                                                                                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                          Et les nuls que log ne supporte pas

                                                                                                                          Anneacutee relative

                                                                                                                          Taux

                                                                                                                          1 4

                                                                                                                          2 4

                                                                                                                          3 3

                                                                                                                          4 5

                                                                                                                          5 5

                                                                                                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                          71

                                                                                                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                          est eacutequivalente agrave

                                                                                                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                          WHERE XP = SPP) FROM SP

                                                                                                                          Testez

                                                                                                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                          72

                                                                                                                          LIST Function La requecircte

                                                                                                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                          Comme les tabulations croiseacutees

                                                                                                                          ndash Mais en + simple

                                                                                                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                          ndash En mono attribut (2004)

                                                                                                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                          sous-formulaires

                                                                                                                          73

                                                                                                                          LIST Function

                                                                                                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                          74

                                                                                                                          GROUP BY avec WHERE

                                                                                                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                          75

                                                                                                                          GROUP BY

                                                                                                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                          Pourquoi

                                                                                                                          76

                                                                                                                          GROUP BY avec HAVING

                                                                                                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                          77

                                                                                                                          T-GROUP BY Proposeacute pour SQL

                                                                                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                          Le rocircle de -join par rapport agrave equi-join

                                                                                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                          78

                                                                                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                          FROM SP Vrai ou Faux

                                                                                                                          79

                                                                                                                          T-GROUP BY

                                                                                                                          Reacutesultat

                                                                                                                          part avg_qty_other_parts part_avg_qty

                                                                                                                          p1 250 300

                                                                                                                          p2 262 250

                                                                                                                          p3 245 400

                                                                                                                          p4 260 250

                                                                                                                          p5 260 250

                                                                                                                          p6 272 100

                                                                                                                          80

                                                                                                                          T-GROUP BY

                                                                                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                          81

                                                                                                                          Rangs Non-Denses(Non Dense Ranking)

                                                                                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                          s p qtyND-rank

                                                                                                                          s4 p5 400 1

                                                                                                                          s3 p2 400 1

                                                                                                                          s1 p3 400 1

                                                                                                                          s4 p4 300 4

                                                                                                                          s2 p2 300 4

                                                                                                                          s1 p1 300 4

                                                                                                                          s4 p2 200 7

                                                                                                                          s1 p4 200 7

                                                                                                                          s1 p2 200 7

                                                                                                                          s4 p1 200 7

                                                                                                                          s1 p6 100 11

                                                                                                                          s1 p5 100 11

                                                                                                                          82

                                                                                                                          Rangs Non-Denses(Graphique MsAccess)

                                                                                                                          s p qty ND-rank

                                                                                                                          s4 p5 400 1

                                                                                                                          s3 p2 400 1

                                                                                                                          s1 p3 400 1

                                                                                                                          s4 p4 300 4

                                                                                                                          s2 p2 300 4

                                                                                                                          s1 p1 300 4

                                                                                                                          s4 p2 200 7

                                                                                                                          s1 p4 200 7

                                                                                                                          s1 p2 200 7

                                                                                                                          s4 p1 200 7

                                                                                                                          s1 p6 100 11

                                                                                                                          s1 p5 100 11

                                                                                                                          83

                                                                                                                          Rangs Denses(Dense Ranking)

                                                                                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                          s p qtyD-rank

                                                                                                                          s1 p3 400 1

                                                                                                                          s3 p2 400 1

                                                                                                                          s4 p5 400 1

                                                                                                                          s1 p1 300 2

                                                                                                                          s2 p2 300 2

                                                                                                                          s4 p4 300 2

                                                                                                                          s1 p4 200 3

                                                                                                                          s1 p2 200 3

                                                                                                                          s4 p2 200 3

                                                                                                                          s4 p1 200 3

                                                                                                                          s1 p6 100 4

                                                                                                                          s1 p5 100 4

                                                                                                                          84

                                                                                                                          Rangs DensesGraphique MsAccess

                                                                                                                          s p qty D-rank

                                                                                                                          s1 p3 400 1

                                                                                                                          s3 p2 400 1

                                                                                                                          s4 p5 400 1

                                                                                                                          s1 p1 300 2

                                                                                                                          s2 p2 300 2

                                                                                                                          s4 p4 300 2

                                                                                                                          s1 p4 200 3

                                                                                                                          s1 p2 200 3

                                                                                                                          s4 p2 200 3

                                                                                                                          s4 p1 200 3

                                                                                                                          s1 p6 100 4

                                                                                                                          s1 p5 100 4

                                                                                                                          85

                                                                                                                          Distribution

                                                                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                          86

                                                                                                                          Reacutesultat

                                                                                                                          s Distribution

                                                                                                                          s1 0419

                                                                                                                          s2 0097

                                                                                                                          s3 0129

                                                                                                                          s4 0355

                                                                                                                          87

                                                                                                                          Distribution Cumulative

                                                                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                          FROM SP

                                                                                                                          ORDER BY SP[s]

                                                                                                                          88

                                                                                                                          Reacutesultat

                                                                                                                          sDistribution Cumuleacutee

                                                                                                                          s1 0419

                                                                                                                          s2 0516

                                                                                                                          s3 0645

                                                                                                                          s4 1

                                                                                                                          89

                                                                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                          90

                                                                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                          FROM S

                                                                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                          s1 Smith Paris good good

                                                                                                                          s2 Jones 100 london good VGood

                                                                                                                          s3 Blake 30 Paris good good

                                                                                                                          s4 Clark 10 london OK OK

                                                                                                                          s5 Adams 30 Athens good good

                                                                                                                          bull Notez le traitement du null

                                                                                                                          91

                                                                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                                                                          FROM P where weight gt 13

                                                                                                                          union

                                                                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                          UNION

                                                                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                                                                          ORDER BY warning DESC weight DESC

                                                                                                                          pname weight Warning

                                                                                                                          cam 19 Very Heavy

                                                                                                                          cog 19 Very Heavy

                                                                                                                          bolt 17 Very Heavy

                                                                                                                          nut 14 Very Heavy

                                                                                                                          screw 14 Very Heavy

                                                                                                                          nut 14 Quite Heavy

                                                                                                                          screw 14 Quite Heavy

                                                                                                                          screw 12 Quite Heavy

                                                                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                          92

                                                                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                          On considegravere AVG(Qty1) pour Qty

                                                                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                          SP

                                                                                                                          s p qtyQty1

                                                                                                                          s1 p1 300 400

                                                                                                                          s1 p2 200

                                                                                                                          s1 p3 400 600

                                                                                                                          s1 p4 200 300

                                                                                                                          s1 p5 100

                                                                                                                          s1 p6 100 200

                                                                                                                          s2 p2 300 500

                                                                                                                          s3 p2 400

                                                                                                                          s4 p1 200 100

                                                                                                                          s4 p2 200

                                                                                                                          s4 p4 300

                                                                                                                          s4 p5 400

                                                                                                                          93

                                                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                          SP

                                                                                                                          s p qtyQty1

                                                                                                                          s1 p1 300 400

                                                                                                                          s1 p2 200

                                                                                                                          s1 p3 400 600

                                                                                                                          s1 p4 200 300

                                                                                                                          s1 p5 100

                                                                                                                          s1 p6 100 200

                                                                                                                          s2 p2 300 500

                                                                                                                          s3 p2 400

                                                                                                                          s4 p1 200 100

                                                                                                                          s4 p2 200

                                                                                                                          s4 p4 300

                                                                                                                          s4 p5 400

                                                                                                                          qty for partpredicted or

                                                                                                                          unknown Qty1

                                                                                                                          100 p5

                                                                                                                          100 predicted value 200

                                                                                                                          200 p2

                                                                                                                          200 predicted value 200

                                                                                                                          300 p4

                                                                                                                          300 predicted value 450

                                                                                                                          400 p2

                                                                                                                          400 p5

                                                                                                                          400 predicted value 600

                                                                                                                          94

                                                                                                                          Tendance

                                                                                                                          qty Qty1

                                                                                                                          100 200

                                                                                                                          200 300

                                                                                                                          300 400

                                                                                                                          400 600

                                                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                          Graph 3D avec Qty en abscisses

                                                                                                                          95

                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                          30102008 120 27102008 4

                                                                                                                          25102008 131 22102008 4

                                                                                                                          23102008 127 20102008 4

                                                                                                                          17102008 269 14102008 4

                                                                                                                          15102008 60 12102008 4

                                                                                                                          11102008 295 08102008 4

                                                                                                                          09102008 340 06102008 4

                                                                                                                          08102008 324 05102008 4

                                                                                                                          06102008 315 03102008 4

                                                                                                                          96

                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                          Graphique avec une info-bulle

                                                                                                                          97

                                                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                          glissantes

                                                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                                                          bull MAVG

                                                                                                                          bull MSUM

                                                                                                                          bull MDIFF

                                                                                                                          bull Voir Teradata + loin

                                                                                                                          98

                                                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                          99

                                                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                                                          100

                                                                                                                          Seacuteries financiegraveres

                                                                                                                          capital taux nval apregraves n ans

                                                                                                                          taux1val1 apregraves n ans

                                                                                                                          GainAbs GainRel

                                                                                                                          100 005 1 105 006 106 1 1

                                                                                                                          100 005 2 110 006 112 2 2

                                                                                                                          100 005 3 115 006 119 4 4

                                                                                                                          100 005 4 121 006 126 5 5

                                                                                                                          100 005 5 127 006 133 6 6

                                                                                                                          100 005 6 134 006 141 7 7

                                                                                                                          100 005 7 140 006 150 10 10

                                                                                                                          100 005 8 147 006 159 12 12

                                                                                                                          100 005 9 155 006 168 13 13

                                                                                                                          100 005 10 162 006 179 17 17

                                                                                                                          100 005 11 171 006 189 18 18

                                                                                                                          100 005 12 179 006 201 22 22

                                                                                                                          100 005 13 188 006 213 25 25

                                                                                                                          100 005 14 197 006 226 29 29

                                                                                                                          100 005 15 207 006 239 32 32

                                                                                                                          100 005 16 218 006 254 36 36

                                                                                                                          100 005 17 229 006 269 40 40

                                                                                                                          100 005 18 240 006 285 45 45

                                                                                                                          100 005 19 252 006 302 50 50

                                                                                                                          100 005 20 265 006 320 55 55

                                                                                                                          101

                                                                                                                          Seacuteries financiegraveres

                                                                                                                          102

                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                          financiers de la table Produits

                                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                          bull En ordre descendant de prix

                                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                          bull Plusieurs actionshellip

                                                                                                                          103

                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                          P prix

                                                                                                                          p3 200

                                                                                                                          p1 200

                                                                                                                          p2 400

                                                                                                                          p3 200

                                                                                                                          p4 100

                                                                                                                          p6 100

                                                                                                                          p5 300

                                                                                                                          p8 300

                                                                                                                          p7 400

                                                                                                                          p10 200

                                                                                                                          p12 300

                                                                                                                          p13 300

                                                                                                                          104

                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                          ORDER BY 4 desc 8 123

                                                                                                                          105

                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                          106

                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                          107

                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                          108

                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                          109

                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                          110

                                                                                                                          GROUPING SETS

                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                          HAVING tot-qty gt 100

                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                          111

                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                          112

                                                                                                                          ROLLUP

                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                          113

                                                                                                                          ROLLUP

                                                                                                                          114

                                                                                                                          ROLLUP

                                                                                                                          Et le CUBE

                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                          de certains nuls

                                                                                                                          115

                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                          Wiley (publ)

                                                                                                                          116

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                          117

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                          118

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          119

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          120

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          121

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          122

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                          123

                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                          Exeacutecution autonome

                                                                                                                          124

                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                          hellip

                                                                                                                          125

                                                                                                                          Liste de Choix Multibase

                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                          126

                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                          148

                                                                                                                          FIN

                                                                                                                          149

                                                                                                                          • SQL Avanceacute 2010
                                                                                                                          • Quoi amp Pourquoi
                                                                                                                          • Slide 3
                                                                                                                          • Synonymes
                                                                                                                          • Noms dattributs
                                                                                                                          • Slide 6
                                                                                                                          • Slide 7
                                                                                                                          • Slide 8
                                                                                                                          • Insertion dans une Vue
                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                          • MsAccess Leacutegendes
                                                                                                                          • Expressions de valeur
                                                                                                                          • Expressions de valeur (2)
                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                          • UNION et ORDER BY
                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                          • Preacutedicat TOP
                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                          • Clause BETWEEN
                                                                                                                          • Limitations de NOT
                                                                                                                          • ANY et ALL
                                                                                                                          • Injection SQL
                                                                                                                          • Injection SQL (2)
                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                          • Tabulations Croiseacutees
                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                          • XOR
                                                                                                                          • IMP
                                                                                                                          • Sous-requecirctes
                                                                                                                          • Sous-requecirctes (2)
                                                                                                                          • Sous-requecirctes (3)
                                                                                                                          • Sous-requecirctes (4)
                                                                                                                          • Sous-requecirctes (5)
                                                                                                                          • Sous-requecirctes (6)
                                                                                                                          • Sous-requecirctes (7)
                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                          • Valeurs nulles
                                                                                                                          • Valeurs nulles (2)
                                                                                                                          • Valeurs nulles (3)
                                                                                                                          • Valeurs nulles (4)
                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                          • Fonction Scalaire RND
                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                          • Fonctions Financiegraveres
                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                          • Fonction DDB
                                                                                                                          • Fonction DDB (2)
                                                                                                                          • Fonction PMT
                                                                                                                          • Fonction PMT (2)
                                                                                                                          • Placement agrave taux variable
                                                                                                                          • GROUP BY
                                                                                                                          • LIST Function
                                                                                                                          • LIST Function (2)
                                                                                                                          • GROUP BY avec WHERE
                                                                                                                          • GROUP BY (2)
                                                                                                                          • GROUP BY avec HAVING
                                                                                                                          • T-GROUP BY
                                                                                                                          • T-GROUP BY (2)
                                                                                                                          • T-GROUP BY (3)
                                                                                                                          • T-GROUP BY (4)
                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                          • Distribution
                                                                                                                          • Reacutesultat
                                                                                                                          • Distribution Cumulative
                                                                                                                          • Reacutesultat (2)
                                                                                                                          • Cateacutegorisation
                                                                                                                          • Cateacutegorisation (2)
                                                                                                                          • Cateacutegorisation (3)
                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                          • Tendance
                                                                                                                          • Moyenne Glissante
                                                                                                                          • Moyenne Glissante (2)
                                                                                                                          • Moyenne Glissante (3)
                                                                                                                          • Seacuteries financiegraveres
                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                          • GROUPING SETS
                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                          • Slide 112
                                                                                                                          • Slide 113
                                                                                                                          • Slide 114
                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                          • Liste de Choix Multibase
                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                          • FIN
                                                                                                                          • Slide 149

                                                                                                                            62

                                                                                                                            Fonction Scalaire RND

                                                                                                                            bull Permet faire lrsquoeacutechantillonnagebull Trois fournisseurs avec les fournitures au

                                                                                                                            hasard (on montre RND aussi pour lrsquoex) SELECT TOP 3 [s] rnd(qty) AS rank

                                                                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                                                                            echantillon s rank

                                                                                                                            s1 502628087997437E-02

                                                                                                                            s4 0518015921115875

                                                                                                                            s3 075702953338623

                                                                                                                            63

                                                                                                                            Fonction Scalaire RND

                                                                                                                            bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                            FROM SPORDER BY rnd(qty) DESC

                                                                                                                            OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                            Votre commentaire ici

                                                                                                                            64

                                                                                                                            Fonctions Financiegraveres

                                                                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                            65

                                                                                                                            Fonctions Financiegraveres

                                                                                                                            Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                            pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                            DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                            Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                            66

                                                                                                                            Fonction DDB

                                                                                                                            insert into DDB (cost salvage life factor amortiss period)

                                                                                                                            select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                            DDB(cost salvage life period factor) as amortiss period

                                                                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                            Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                            67

                                                                                                                            Fonction DDB

                                                                                                                            INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                            SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                            DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                            Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                            68

                                                                                                                            Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                            en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                            Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                            nombres neacutegatifs

                                                                                                                            Fonction PMT

                                                                                                                            69

                                                                                                                            Fonction PMT

                                                                                                                            SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                            Fonction PMT calcul dannuiteacute demprunt

                                                                                                                            Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                            preacutesentevaleur_payeacutee surprime

                                                                                                                            -16049 005 20 200000 -320980 -120980

                                                                                                                            70

                                                                                                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                            Et les nuls que log ne supporte pas

                                                                                                                            Anneacutee relative

                                                                                                                            Taux

                                                                                                                            1 4

                                                                                                                            2 4

                                                                                                                            3 3

                                                                                                                            4 5

                                                                                                                            5 5

                                                                                                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                            71

                                                                                                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                            est eacutequivalente agrave

                                                                                                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                            WHERE XP = SPP) FROM SP

                                                                                                                            Testez

                                                                                                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                            72

                                                                                                                            LIST Function La requecircte

                                                                                                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                            Comme les tabulations croiseacutees

                                                                                                                            ndash Mais en + simple

                                                                                                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                            ndash En mono attribut (2004)

                                                                                                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                            sous-formulaires

                                                                                                                            73

                                                                                                                            LIST Function

                                                                                                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                            74

                                                                                                                            GROUP BY avec WHERE

                                                                                                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                            75

                                                                                                                            GROUP BY

                                                                                                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                            Pourquoi

                                                                                                                            76

                                                                                                                            GROUP BY avec HAVING

                                                                                                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                            77

                                                                                                                            T-GROUP BY Proposeacute pour SQL

                                                                                                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                            Le rocircle de -join par rapport agrave equi-join

                                                                                                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                            INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                            78

                                                                                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                            FROM SP Vrai ou Faux

                                                                                                                            79

                                                                                                                            T-GROUP BY

                                                                                                                            Reacutesultat

                                                                                                                            part avg_qty_other_parts part_avg_qty

                                                                                                                            p1 250 300

                                                                                                                            p2 262 250

                                                                                                                            p3 245 400

                                                                                                                            p4 260 250

                                                                                                                            p5 260 250

                                                                                                                            p6 272 100

                                                                                                                            80

                                                                                                                            T-GROUP BY

                                                                                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                            81

                                                                                                                            Rangs Non-Denses(Non Dense Ranking)

                                                                                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                            s p qtyND-rank

                                                                                                                            s4 p5 400 1

                                                                                                                            s3 p2 400 1

                                                                                                                            s1 p3 400 1

                                                                                                                            s4 p4 300 4

                                                                                                                            s2 p2 300 4

                                                                                                                            s1 p1 300 4

                                                                                                                            s4 p2 200 7

                                                                                                                            s1 p4 200 7

                                                                                                                            s1 p2 200 7

                                                                                                                            s4 p1 200 7

                                                                                                                            s1 p6 100 11

                                                                                                                            s1 p5 100 11

                                                                                                                            82

                                                                                                                            Rangs Non-Denses(Graphique MsAccess)

                                                                                                                            s p qty ND-rank

                                                                                                                            s4 p5 400 1

                                                                                                                            s3 p2 400 1

                                                                                                                            s1 p3 400 1

                                                                                                                            s4 p4 300 4

                                                                                                                            s2 p2 300 4

                                                                                                                            s1 p1 300 4

                                                                                                                            s4 p2 200 7

                                                                                                                            s1 p4 200 7

                                                                                                                            s1 p2 200 7

                                                                                                                            s4 p1 200 7

                                                                                                                            s1 p6 100 11

                                                                                                                            s1 p5 100 11

                                                                                                                            83

                                                                                                                            Rangs Denses(Dense Ranking)

                                                                                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                            s p qtyD-rank

                                                                                                                            s1 p3 400 1

                                                                                                                            s3 p2 400 1

                                                                                                                            s4 p5 400 1

                                                                                                                            s1 p1 300 2

                                                                                                                            s2 p2 300 2

                                                                                                                            s4 p4 300 2

                                                                                                                            s1 p4 200 3

                                                                                                                            s1 p2 200 3

                                                                                                                            s4 p2 200 3

                                                                                                                            s4 p1 200 3

                                                                                                                            s1 p6 100 4

                                                                                                                            s1 p5 100 4

                                                                                                                            84

                                                                                                                            Rangs DensesGraphique MsAccess

                                                                                                                            s p qty D-rank

                                                                                                                            s1 p3 400 1

                                                                                                                            s3 p2 400 1

                                                                                                                            s4 p5 400 1

                                                                                                                            s1 p1 300 2

                                                                                                                            s2 p2 300 2

                                                                                                                            s4 p4 300 2

                                                                                                                            s1 p4 200 3

                                                                                                                            s1 p2 200 3

                                                                                                                            s4 p2 200 3

                                                                                                                            s4 p1 200 3

                                                                                                                            s1 p6 100 4

                                                                                                                            s1 p5 100 4

                                                                                                                            85

                                                                                                                            Distribution

                                                                                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                            86

                                                                                                                            Reacutesultat

                                                                                                                            s Distribution

                                                                                                                            s1 0419

                                                                                                                            s2 0097

                                                                                                                            s3 0129

                                                                                                                            s4 0355

                                                                                                                            87

                                                                                                                            Distribution Cumulative

                                                                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                            FROM SP

                                                                                                                            ORDER BY SP[s]

                                                                                                                            88

                                                                                                                            Reacutesultat

                                                                                                                            sDistribution Cumuleacutee

                                                                                                                            s1 0419

                                                                                                                            s2 0516

                                                                                                                            s3 0645

                                                                                                                            s4 1

                                                                                                                            89

                                                                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                            90

                                                                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                            FROM S

                                                                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                            s1 Smith Paris good good

                                                                                                                            s2 Jones 100 london good VGood

                                                                                                                            s3 Blake 30 Paris good good

                                                                                                                            s4 Clark 10 london OK OK

                                                                                                                            s5 Adams 30 Athens good good

                                                                                                                            bull Notez le traitement du null

                                                                                                                            91

                                                                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                                                                            FROM P where weight gt 13

                                                                                                                            union

                                                                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                            UNION

                                                                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                                                                            ORDER BY warning DESC weight DESC

                                                                                                                            pname weight Warning

                                                                                                                            cam 19 Very Heavy

                                                                                                                            cog 19 Very Heavy

                                                                                                                            bolt 17 Very Heavy

                                                                                                                            nut 14 Very Heavy

                                                                                                                            screw 14 Very Heavy

                                                                                                                            nut 14 Quite Heavy

                                                                                                                            screw 14 Quite Heavy

                                                                                                                            screw 12 Quite Heavy

                                                                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                            92

                                                                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                            On considegravere AVG(Qty1) pour Qty

                                                                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                            SP

                                                                                                                            s p qtyQty1

                                                                                                                            s1 p1 300 400

                                                                                                                            s1 p2 200

                                                                                                                            s1 p3 400 600

                                                                                                                            s1 p4 200 300

                                                                                                                            s1 p5 100

                                                                                                                            s1 p6 100 200

                                                                                                                            s2 p2 300 500

                                                                                                                            s3 p2 400

                                                                                                                            s4 p1 200 100

                                                                                                                            s4 p2 200

                                                                                                                            s4 p4 300

                                                                                                                            s4 p5 400

                                                                                                                            93

                                                                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                            SP

                                                                                                                            s p qtyQty1

                                                                                                                            s1 p1 300 400

                                                                                                                            s1 p2 200

                                                                                                                            s1 p3 400 600

                                                                                                                            s1 p4 200 300

                                                                                                                            s1 p5 100

                                                                                                                            s1 p6 100 200

                                                                                                                            s2 p2 300 500

                                                                                                                            s3 p2 400

                                                                                                                            s4 p1 200 100

                                                                                                                            s4 p2 200

                                                                                                                            s4 p4 300

                                                                                                                            s4 p5 400

                                                                                                                            qty for partpredicted or

                                                                                                                            unknown Qty1

                                                                                                                            100 p5

                                                                                                                            100 predicted value 200

                                                                                                                            200 p2

                                                                                                                            200 predicted value 200

                                                                                                                            300 p4

                                                                                                                            300 predicted value 450

                                                                                                                            400 p2

                                                                                                                            400 p5

                                                                                                                            400 predicted value 600

                                                                                                                            94

                                                                                                                            Tendance

                                                                                                                            qty Qty1

                                                                                                                            100 200

                                                                                                                            200 300

                                                                                                                            300 400

                                                                                                                            400 600

                                                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                            Graph 3D avec Qty en abscisses

                                                                                                                            95

                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                            30102008 120 27102008 4

                                                                                                                            25102008 131 22102008 4

                                                                                                                            23102008 127 20102008 4

                                                                                                                            17102008 269 14102008 4

                                                                                                                            15102008 60 12102008 4

                                                                                                                            11102008 295 08102008 4

                                                                                                                            09102008 340 06102008 4

                                                                                                                            08102008 324 05102008 4

                                                                                                                            06102008 315 03102008 4

                                                                                                                            96

                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                            Graphique avec une info-bulle

                                                                                                                            97

                                                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                            glissantes

                                                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                                                            bull MAVG

                                                                                                                            bull MSUM

                                                                                                                            bull MDIFF

                                                                                                                            bull Voir Teradata + loin

                                                                                                                            98

                                                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                            99

                                                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                                                            100

                                                                                                                            Seacuteries financiegraveres

                                                                                                                            capital taux nval apregraves n ans

                                                                                                                            taux1val1 apregraves n ans

                                                                                                                            GainAbs GainRel

                                                                                                                            100 005 1 105 006 106 1 1

                                                                                                                            100 005 2 110 006 112 2 2

                                                                                                                            100 005 3 115 006 119 4 4

                                                                                                                            100 005 4 121 006 126 5 5

                                                                                                                            100 005 5 127 006 133 6 6

                                                                                                                            100 005 6 134 006 141 7 7

                                                                                                                            100 005 7 140 006 150 10 10

                                                                                                                            100 005 8 147 006 159 12 12

                                                                                                                            100 005 9 155 006 168 13 13

                                                                                                                            100 005 10 162 006 179 17 17

                                                                                                                            100 005 11 171 006 189 18 18

                                                                                                                            100 005 12 179 006 201 22 22

                                                                                                                            100 005 13 188 006 213 25 25

                                                                                                                            100 005 14 197 006 226 29 29

                                                                                                                            100 005 15 207 006 239 32 32

                                                                                                                            100 005 16 218 006 254 36 36

                                                                                                                            100 005 17 229 006 269 40 40

                                                                                                                            100 005 18 240 006 285 45 45

                                                                                                                            100 005 19 252 006 302 50 50

                                                                                                                            100 005 20 265 006 320 55 55

                                                                                                                            101

                                                                                                                            Seacuteries financiegraveres

                                                                                                                            102

                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                            financiers de la table Produits

                                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                            bull En ordre descendant de prix

                                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                            bull Plusieurs actionshellip

                                                                                                                            103

                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                            P prix

                                                                                                                            p3 200

                                                                                                                            p1 200

                                                                                                                            p2 400

                                                                                                                            p3 200

                                                                                                                            p4 100

                                                                                                                            p6 100

                                                                                                                            p5 300

                                                                                                                            p8 300

                                                                                                                            p7 400

                                                                                                                            p10 200

                                                                                                                            p12 300

                                                                                                                            p13 300

                                                                                                                            104

                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                            ORDER BY 4 desc 8 123

                                                                                                                            105

                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                            106

                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                            107

                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                            108

                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                            109

                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                            110

                                                                                                                            GROUPING SETS

                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                            HAVING tot-qty gt 100

                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                            111

                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                            112

                                                                                                                            ROLLUP

                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                            113

                                                                                                                            ROLLUP

                                                                                                                            114

                                                                                                                            ROLLUP

                                                                                                                            Et le CUBE

                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                            de certains nuls

                                                                                                                            115

                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                            Wiley (publ)

                                                                                                                            116

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                            117

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                            118

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            119

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            120

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            121

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            122

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                            123

                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                            Exeacutecution autonome

                                                                                                                            124

                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                            hellip

                                                                                                                            125

                                                                                                                            Liste de Choix Multibase

                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                            126

                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                            148

                                                                                                                            FIN

                                                                                                                            149

                                                                                                                            • SQL Avanceacute 2010
                                                                                                                            • Quoi amp Pourquoi
                                                                                                                            • Slide 3
                                                                                                                            • Synonymes
                                                                                                                            • Noms dattributs
                                                                                                                            • Slide 6
                                                                                                                            • Slide 7
                                                                                                                            • Slide 8
                                                                                                                            • Insertion dans une Vue
                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                            • MsAccess Leacutegendes
                                                                                                                            • Expressions de valeur
                                                                                                                            • Expressions de valeur (2)
                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                            • UNION et ORDER BY
                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                            • Preacutedicat TOP
                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                            • Clause BETWEEN
                                                                                                                            • Limitations de NOT
                                                                                                                            • ANY et ALL
                                                                                                                            • Injection SQL
                                                                                                                            • Injection SQL (2)
                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                            • Tabulations Croiseacutees
                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                            • XOR
                                                                                                                            • IMP
                                                                                                                            • Sous-requecirctes
                                                                                                                            • Sous-requecirctes (2)
                                                                                                                            • Sous-requecirctes (3)
                                                                                                                            • Sous-requecirctes (4)
                                                                                                                            • Sous-requecirctes (5)
                                                                                                                            • Sous-requecirctes (6)
                                                                                                                            • Sous-requecirctes (7)
                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                            • Valeurs nulles
                                                                                                                            • Valeurs nulles (2)
                                                                                                                            • Valeurs nulles (3)
                                                                                                                            • Valeurs nulles (4)
                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                            • Fonction Scalaire RND
                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                            • Fonctions Financiegraveres
                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                            • Fonction DDB
                                                                                                                            • Fonction DDB (2)
                                                                                                                            • Fonction PMT
                                                                                                                            • Fonction PMT (2)
                                                                                                                            • Placement agrave taux variable
                                                                                                                            • GROUP BY
                                                                                                                            • LIST Function
                                                                                                                            • LIST Function (2)
                                                                                                                            • GROUP BY avec WHERE
                                                                                                                            • GROUP BY (2)
                                                                                                                            • GROUP BY avec HAVING
                                                                                                                            • T-GROUP BY
                                                                                                                            • T-GROUP BY (2)
                                                                                                                            • T-GROUP BY (3)
                                                                                                                            • T-GROUP BY (4)
                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                            • Distribution
                                                                                                                            • Reacutesultat
                                                                                                                            • Distribution Cumulative
                                                                                                                            • Reacutesultat (2)
                                                                                                                            • Cateacutegorisation
                                                                                                                            • Cateacutegorisation (2)
                                                                                                                            • Cateacutegorisation (3)
                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                            • Tendance
                                                                                                                            • Moyenne Glissante
                                                                                                                            • Moyenne Glissante (2)
                                                                                                                            • Moyenne Glissante (3)
                                                                                                                            • Seacuteries financiegraveres
                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                            • GROUPING SETS
                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                            • Slide 112
                                                                                                                            • Slide 113
                                                                                                                            • Slide 114
                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                            • Liste de Choix Multibase
                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                            • FIN
                                                                                                                            • Slide 149

                                                                                                                              63

                                                                                                                              Fonction Scalaire RND

                                                                                                                              bull Et si on eacutecrivait SELECT TOP 3 [s] rnd() AS rank

                                                                                                                              FROM SPORDER BY rnd(qty) DESC

                                                                                                                              OuSELECT TOP 3 [s] rnd([S]) AS rankFROM SPORDER BY rnd(qty) DESC

                                                                                                                              Votre commentaire ici

                                                                                                                              64

                                                                                                                              Fonctions Financiegraveres

                                                                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                              65

                                                                                                                              Fonctions Financiegraveres

                                                                                                                              Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                              pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                              DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                              Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                              66

                                                                                                                              Fonction DDB

                                                                                                                              insert into DDB (cost salvage life factor amortiss period)

                                                                                                                              select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                              DDB(cost salvage life period factor) as amortiss period

                                                                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                              Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                              67

                                                                                                                              Fonction DDB

                                                                                                                              INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                              SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                              DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                              Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                              68

                                                                                                                              Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                              en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                              Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                              nombres neacutegatifs

                                                                                                                              Fonction PMT

                                                                                                                              69

                                                                                                                              Fonction PMT

                                                                                                                              SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                              Fonction PMT calcul dannuiteacute demprunt

                                                                                                                              Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                              preacutesentevaleur_payeacutee surprime

                                                                                                                              -16049 005 20 200000 -320980 -120980

                                                                                                                              70

                                                                                                                              Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                              ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                              SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                              Et les nuls que log ne supporte pas

                                                                                                                              Anneacutee relative

                                                                                                                              Taux

                                                                                                                              1 4

                                                                                                                              2 4

                                                                                                                              3 3

                                                                                                                              4 5

                                                                                                                              5 5

                                                                                                                              Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                              71

                                                                                                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                              est eacutequivalente agrave

                                                                                                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                              WHERE XP = SPP) FROM SP

                                                                                                                              Testez

                                                                                                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                              72

                                                                                                                              LIST Function La requecircte

                                                                                                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                              Comme les tabulations croiseacutees

                                                                                                                              ndash Mais en + simple

                                                                                                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                              ndash En mono attribut (2004)

                                                                                                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                              sous-formulaires

                                                                                                                              73

                                                                                                                              LIST Function

                                                                                                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                              74

                                                                                                                              GROUP BY avec WHERE

                                                                                                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                              75

                                                                                                                              GROUP BY

                                                                                                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                              Pourquoi

                                                                                                                              76

                                                                                                                              GROUP BY avec HAVING

                                                                                                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                              77

                                                                                                                              T-GROUP BY Proposeacute pour SQL

                                                                                                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                              Le rocircle de -join par rapport agrave equi-join

                                                                                                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                              INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                              78

                                                                                                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                              FROM SP Vrai ou Faux

                                                                                                                              79

                                                                                                                              T-GROUP BY

                                                                                                                              Reacutesultat

                                                                                                                              part avg_qty_other_parts part_avg_qty

                                                                                                                              p1 250 300

                                                                                                                              p2 262 250

                                                                                                                              p3 245 400

                                                                                                                              p4 260 250

                                                                                                                              p5 260 250

                                                                                                                              p6 272 100

                                                                                                                              80

                                                                                                                              T-GROUP BY

                                                                                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                              81

                                                                                                                              Rangs Non-Denses(Non Dense Ranking)

                                                                                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                              s p qtyND-rank

                                                                                                                              s4 p5 400 1

                                                                                                                              s3 p2 400 1

                                                                                                                              s1 p3 400 1

                                                                                                                              s4 p4 300 4

                                                                                                                              s2 p2 300 4

                                                                                                                              s1 p1 300 4

                                                                                                                              s4 p2 200 7

                                                                                                                              s1 p4 200 7

                                                                                                                              s1 p2 200 7

                                                                                                                              s4 p1 200 7

                                                                                                                              s1 p6 100 11

                                                                                                                              s1 p5 100 11

                                                                                                                              82

                                                                                                                              Rangs Non-Denses(Graphique MsAccess)

                                                                                                                              s p qty ND-rank

                                                                                                                              s4 p5 400 1

                                                                                                                              s3 p2 400 1

                                                                                                                              s1 p3 400 1

                                                                                                                              s4 p4 300 4

                                                                                                                              s2 p2 300 4

                                                                                                                              s1 p1 300 4

                                                                                                                              s4 p2 200 7

                                                                                                                              s1 p4 200 7

                                                                                                                              s1 p2 200 7

                                                                                                                              s4 p1 200 7

                                                                                                                              s1 p6 100 11

                                                                                                                              s1 p5 100 11

                                                                                                                              83

                                                                                                                              Rangs Denses(Dense Ranking)

                                                                                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                              s p qtyD-rank

                                                                                                                              s1 p3 400 1

                                                                                                                              s3 p2 400 1

                                                                                                                              s4 p5 400 1

                                                                                                                              s1 p1 300 2

                                                                                                                              s2 p2 300 2

                                                                                                                              s4 p4 300 2

                                                                                                                              s1 p4 200 3

                                                                                                                              s1 p2 200 3

                                                                                                                              s4 p2 200 3

                                                                                                                              s4 p1 200 3

                                                                                                                              s1 p6 100 4

                                                                                                                              s1 p5 100 4

                                                                                                                              84

                                                                                                                              Rangs DensesGraphique MsAccess

                                                                                                                              s p qty D-rank

                                                                                                                              s1 p3 400 1

                                                                                                                              s3 p2 400 1

                                                                                                                              s4 p5 400 1

                                                                                                                              s1 p1 300 2

                                                                                                                              s2 p2 300 2

                                                                                                                              s4 p4 300 2

                                                                                                                              s1 p4 200 3

                                                                                                                              s1 p2 200 3

                                                                                                                              s4 p2 200 3

                                                                                                                              s4 p1 200 3

                                                                                                                              s1 p6 100 4

                                                                                                                              s1 p5 100 4

                                                                                                                              85

                                                                                                                              Distribution

                                                                                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                              86

                                                                                                                              Reacutesultat

                                                                                                                              s Distribution

                                                                                                                              s1 0419

                                                                                                                              s2 0097

                                                                                                                              s3 0129

                                                                                                                              s4 0355

                                                                                                                              87

                                                                                                                              Distribution Cumulative

                                                                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                              FROM SP

                                                                                                                              ORDER BY SP[s]

                                                                                                                              88

                                                                                                                              Reacutesultat

                                                                                                                              sDistribution Cumuleacutee

                                                                                                                              s1 0419

                                                                                                                              s2 0516

                                                                                                                              s3 0645

                                                                                                                              s4 1

                                                                                                                              89

                                                                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                              90

                                                                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                              FROM S

                                                                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                              s1 Smith Paris good good

                                                                                                                              s2 Jones 100 london good VGood

                                                                                                                              s3 Blake 30 Paris good good

                                                                                                                              s4 Clark 10 london OK OK

                                                                                                                              s5 Adams 30 Athens good good

                                                                                                                              bull Notez le traitement du null

                                                                                                                              91

                                                                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                                                                              FROM P where weight gt 13

                                                                                                                              union

                                                                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                              UNION

                                                                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                                                                              ORDER BY warning DESC weight DESC

                                                                                                                              pname weight Warning

                                                                                                                              cam 19 Very Heavy

                                                                                                                              cog 19 Very Heavy

                                                                                                                              bolt 17 Very Heavy

                                                                                                                              nut 14 Very Heavy

                                                                                                                              screw 14 Very Heavy

                                                                                                                              nut 14 Quite Heavy

                                                                                                                              screw 14 Quite Heavy

                                                                                                                              screw 12 Quite Heavy

                                                                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                              92

                                                                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                              On considegravere AVG(Qty1) pour Qty

                                                                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                              SP

                                                                                                                              s p qtyQty1

                                                                                                                              s1 p1 300 400

                                                                                                                              s1 p2 200

                                                                                                                              s1 p3 400 600

                                                                                                                              s1 p4 200 300

                                                                                                                              s1 p5 100

                                                                                                                              s1 p6 100 200

                                                                                                                              s2 p2 300 500

                                                                                                                              s3 p2 400

                                                                                                                              s4 p1 200 100

                                                                                                                              s4 p2 200

                                                                                                                              s4 p4 300

                                                                                                                              s4 p5 400

                                                                                                                              93

                                                                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                              SP

                                                                                                                              s p qtyQty1

                                                                                                                              s1 p1 300 400

                                                                                                                              s1 p2 200

                                                                                                                              s1 p3 400 600

                                                                                                                              s1 p4 200 300

                                                                                                                              s1 p5 100

                                                                                                                              s1 p6 100 200

                                                                                                                              s2 p2 300 500

                                                                                                                              s3 p2 400

                                                                                                                              s4 p1 200 100

                                                                                                                              s4 p2 200

                                                                                                                              s4 p4 300

                                                                                                                              s4 p5 400

                                                                                                                              qty for partpredicted or

                                                                                                                              unknown Qty1

                                                                                                                              100 p5

                                                                                                                              100 predicted value 200

                                                                                                                              200 p2

                                                                                                                              200 predicted value 200

                                                                                                                              300 p4

                                                                                                                              300 predicted value 450

                                                                                                                              400 p2

                                                                                                                              400 p5

                                                                                                                              400 predicted value 600

                                                                                                                              94

                                                                                                                              Tendance

                                                                                                                              qty Qty1

                                                                                                                              100 200

                                                                                                                              200 300

                                                                                                                              300 400

                                                                                                                              400 600

                                                                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                              Graph 3D avec Qty en abscisses

                                                                                                                              95

                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                              30102008 120 27102008 4

                                                                                                                              25102008 131 22102008 4

                                                                                                                              23102008 127 20102008 4

                                                                                                                              17102008 269 14102008 4

                                                                                                                              15102008 60 12102008 4

                                                                                                                              11102008 295 08102008 4

                                                                                                                              09102008 340 06102008 4

                                                                                                                              08102008 324 05102008 4

                                                                                                                              06102008 315 03102008 4

                                                                                                                              96

                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                              Graphique avec une info-bulle

                                                                                                                              97

                                                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                              glissantes

                                                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                                                              bull MAVG

                                                                                                                              bull MSUM

                                                                                                                              bull MDIFF

                                                                                                                              bull Voir Teradata + loin

                                                                                                                              98

                                                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                              99

                                                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                                                              100

                                                                                                                              Seacuteries financiegraveres

                                                                                                                              capital taux nval apregraves n ans

                                                                                                                              taux1val1 apregraves n ans

                                                                                                                              GainAbs GainRel

                                                                                                                              100 005 1 105 006 106 1 1

                                                                                                                              100 005 2 110 006 112 2 2

                                                                                                                              100 005 3 115 006 119 4 4

                                                                                                                              100 005 4 121 006 126 5 5

                                                                                                                              100 005 5 127 006 133 6 6

                                                                                                                              100 005 6 134 006 141 7 7

                                                                                                                              100 005 7 140 006 150 10 10

                                                                                                                              100 005 8 147 006 159 12 12

                                                                                                                              100 005 9 155 006 168 13 13

                                                                                                                              100 005 10 162 006 179 17 17

                                                                                                                              100 005 11 171 006 189 18 18

                                                                                                                              100 005 12 179 006 201 22 22

                                                                                                                              100 005 13 188 006 213 25 25

                                                                                                                              100 005 14 197 006 226 29 29

                                                                                                                              100 005 15 207 006 239 32 32

                                                                                                                              100 005 16 218 006 254 36 36

                                                                                                                              100 005 17 229 006 269 40 40

                                                                                                                              100 005 18 240 006 285 45 45

                                                                                                                              100 005 19 252 006 302 50 50

                                                                                                                              100 005 20 265 006 320 55 55

                                                                                                                              101

                                                                                                                              Seacuteries financiegraveres

                                                                                                                              102

                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                              financiers de la table Produits

                                                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                              bull En ordre descendant de prix

                                                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                              bull Plusieurs actionshellip

                                                                                                                              103

                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                              P prix

                                                                                                                              p3 200

                                                                                                                              p1 200

                                                                                                                              p2 400

                                                                                                                              p3 200

                                                                                                                              p4 100

                                                                                                                              p6 100

                                                                                                                              p5 300

                                                                                                                              p8 300

                                                                                                                              p7 400

                                                                                                                              p10 200

                                                                                                                              p12 300

                                                                                                                              p13 300

                                                                                                                              104

                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                              ORDER BY 4 desc 8 123

                                                                                                                              105

                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                              106

                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                              107

                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                              108

                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                              109

                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                              110

                                                                                                                              GROUPING SETS

                                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                              HAVING tot-qty gt 100

                                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                              111

                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                              112

                                                                                                                              ROLLUP

                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                              113

                                                                                                                              ROLLUP

                                                                                                                              114

                                                                                                                              ROLLUP

                                                                                                                              Et le CUBE

                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                              de certains nuls

                                                                                                                              115

                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                              Wiley (publ)

                                                                                                                              116

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                              117

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                              118

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              119

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              120

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              121

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              122

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                              123

                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                              Exeacutecution autonome

                                                                                                                              124

                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                              hellip

                                                                                                                              125

                                                                                                                              Liste de Choix Multibase

                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                              126

                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                              148

                                                                                                                              FIN

                                                                                                                              149

                                                                                                                              • SQL Avanceacute 2010
                                                                                                                              • Quoi amp Pourquoi
                                                                                                                              • Slide 3
                                                                                                                              • Synonymes
                                                                                                                              • Noms dattributs
                                                                                                                              • Slide 6
                                                                                                                              • Slide 7
                                                                                                                              • Slide 8
                                                                                                                              • Insertion dans une Vue
                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                              • MsAccess Leacutegendes
                                                                                                                              • Expressions de valeur
                                                                                                                              • Expressions de valeur (2)
                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                              • UNION et ORDER BY
                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                              • Preacutedicat TOP
                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                              • Clause BETWEEN
                                                                                                                              • Limitations de NOT
                                                                                                                              • ANY et ALL
                                                                                                                              • Injection SQL
                                                                                                                              • Injection SQL (2)
                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                              • Tabulations Croiseacutees
                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                              • XOR
                                                                                                                              • IMP
                                                                                                                              • Sous-requecirctes
                                                                                                                              • Sous-requecirctes (2)
                                                                                                                              • Sous-requecirctes (3)
                                                                                                                              • Sous-requecirctes (4)
                                                                                                                              • Sous-requecirctes (5)
                                                                                                                              • Sous-requecirctes (6)
                                                                                                                              • Sous-requecirctes (7)
                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                              • Valeurs nulles
                                                                                                                              • Valeurs nulles (2)
                                                                                                                              • Valeurs nulles (3)
                                                                                                                              • Valeurs nulles (4)
                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                              • Fonction Scalaire RND
                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                              • Fonctions Financiegraveres
                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                              • Fonction DDB
                                                                                                                              • Fonction DDB (2)
                                                                                                                              • Fonction PMT
                                                                                                                              • Fonction PMT (2)
                                                                                                                              • Placement agrave taux variable
                                                                                                                              • GROUP BY
                                                                                                                              • LIST Function
                                                                                                                              • LIST Function (2)
                                                                                                                              • GROUP BY avec WHERE
                                                                                                                              • GROUP BY (2)
                                                                                                                              • GROUP BY avec HAVING
                                                                                                                              • T-GROUP BY
                                                                                                                              • T-GROUP BY (2)
                                                                                                                              • T-GROUP BY (3)
                                                                                                                              • T-GROUP BY (4)
                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                              • Distribution
                                                                                                                              • Reacutesultat
                                                                                                                              • Distribution Cumulative
                                                                                                                              • Reacutesultat (2)
                                                                                                                              • Cateacutegorisation
                                                                                                                              • Cateacutegorisation (2)
                                                                                                                              • Cateacutegorisation (3)
                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                              • Tendance
                                                                                                                              • Moyenne Glissante
                                                                                                                              • Moyenne Glissante (2)
                                                                                                                              • Moyenne Glissante (3)
                                                                                                                              • Seacuteries financiegraveres
                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                              • GROUPING SETS
                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                              • Slide 112
                                                                                                                              • Slide 113
                                                                                                                              • Slide 114
                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                              • Liste de Choix Multibase
                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                              • FIN
                                                                                                                              • Slide 149

                                                                                                                                64

                                                                                                                                Fonctions Financiegraveres

                                                                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                                65

                                                                                                                                Fonctions Financiegraveres

                                                                                                                                Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                                pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                                DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                                Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                                66

                                                                                                                                Fonction DDB

                                                                                                                                insert into DDB (cost salvage life factor amortiss period)

                                                                                                                                select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                                DDB(cost salvage life period factor) as amortiss period

                                                                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                                67

                                                                                                                                Fonction DDB

                                                                                                                                INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                                SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                                DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                                Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                68

                                                                                                                                Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                                en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                                Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                                nombres neacutegatifs

                                                                                                                                Fonction PMT

                                                                                                                                69

                                                                                                                                Fonction PMT

                                                                                                                                SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                                Fonction PMT calcul dannuiteacute demprunt

                                                                                                                                Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                                preacutesentevaleur_payeacutee surprime

                                                                                                                                -16049 005 20 200000 -320980 -120980

                                                                                                                                70

                                                                                                                                Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                Et les nuls que log ne supporte pas

                                                                                                                                Anneacutee relative

                                                                                                                                Taux

                                                                                                                                1 4

                                                                                                                                2 4

                                                                                                                                3 3

                                                                                                                                4 5

                                                                                                                                5 5

                                                                                                                                Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                71

                                                                                                                                GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                est eacutequivalente agrave

                                                                                                                                SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                WHERE XP = SPP) FROM SP

                                                                                                                                Testez

                                                                                                                                Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                72

                                                                                                                                LIST Function La requecircte

                                                                                                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                Comme les tabulations croiseacutees

                                                                                                                                ndash Mais en + simple

                                                                                                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                ndash En mono attribut (2004)

                                                                                                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                sous-formulaires

                                                                                                                                73

                                                                                                                                LIST Function

                                                                                                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                74

                                                                                                                                GROUP BY avec WHERE

                                                                                                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                75

                                                                                                                                GROUP BY

                                                                                                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                Pourquoi

                                                                                                                                76

                                                                                                                                GROUP BY avec HAVING

                                                                                                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                77

                                                                                                                                T-GROUP BY Proposeacute pour SQL

                                                                                                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                Le rocircle de -join par rapport agrave equi-join

                                                                                                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                78

                                                                                                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                FROM SP Vrai ou Faux

                                                                                                                                79

                                                                                                                                T-GROUP BY

                                                                                                                                Reacutesultat

                                                                                                                                part avg_qty_other_parts part_avg_qty

                                                                                                                                p1 250 300

                                                                                                                                p2 262 250

                                                                                                                                p3 245 400

                                                                                                                                p4 260 250

                                                                                                                                p5 260 250

                                                                                                                                p6 272 100

                                                                                                                                80

                                                                                                                                T-GROUP BY

                                                                                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                81

                                                                                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                s p qtyND-rank

                                                                                                                                s4 p5 400 1

                                                                                                                                s3 p2 400 1

                                                                                                                                s1 p3 400 1

                                                                                                                                s4 p4 300 4

                                                                                                                                s2 p2 300 4

                                                                                                                                s1 p1 300 4

                                                                                                                                s4 p2 200 7

                                                                                                                                s1 p4 200 7

                                                                                                                                s1 p2 200 7

                                                                                                                                s4 p1 200 7

                                                                                                                                s1 p6 100 11

                                                                                                                                s1 p5 100 11

                                                                                                                                82

                                                                                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                s p qty ND-rank

                                                                                                                                s4 p5 400 1

                                                                                                                                s3 p2 400 1

                                                                                                                                s1 p3 400 1

                                                                                                                                s4 p4 300 4

                                                                                                                                s2 p2 300 4

                                                                                                                                s1 p1 300 4

                                                                                                                                s4 p2 200 7

                                                                                                                                s1 p4 200 7

                                                                                                                                s1 p2 200 7

                                                                                                                                s4 p1 200 7

                                                                                                                                s1 p6 100 11

                                                                                                                                s1 p5 100 11

                                                                                                                                83

                                                                                                                                Rangs Denses(Dense Ranking)

                                                                                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                s p qtyD-rank

                                                                                                                                s1 p3 400 1

                                                                                                                                s3 p2 400 1

                                                                                                                                s4 p5 400 1

                                                                                                                                s1 p1 300 2

                                                                                                                                s2 p2 300 2

                                                                                                                                s4 p4 300 2

                                                                                                                                s1 p4 200 3

                                                                                                                                s1 p2 200 3

                                                                                                                                s4 p2 200 3

                                                                                                                                s4 p1 200 3

                                                                                                                                s1 p6 100 4

                                                                                                                                s1 p5 100 4

                                                                                                                                84

                                                                                                                                Rangs DensesGraphique MsAccess

                                                                                                                                s p qty D-rank

                                                                                                                                s1 p3 400 1

                                                                                                                                s3 p2 400 1

                                                                                                                                s4 p5 400 1

                                                                                                                                s1 p1 300 2

                                                                                                                                s2 p2 300 2

                                                                                                                                s4 p4 300 2

                                                                                                                                s1 p4 200 3

                                                                                                                                s1 p2 200 3

                                                                                                                                s4 p2 200 3

                                                                                                                                s4 p1 200 3

                                                                                                                                s1 p6 100 4

                                                                                                                                s1 p5 100 4

                                                                                                                                85

                                                                                                                                Distribution

                                                                                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                86

                                                                                                                                Reacutesultat

                                                                                                                                s Distribution

                                                                                                                                s1 0419

                                                                                                                                s2 0097

                                                                                                                                s3 0129

                                                                                                                                s4 0355

                                                                                                                                87

                                                                                                                                Distribution Cumulative

                                                                                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                FROM SP

                                                                                                                                ORDER BY SP[s]

                                                                                                                                88

                                                                                                                                Reacutesultat

                                                                                                                                sDistribution Cumuleacutee

                                                                                                                                s1 0419

                                                                                                                                s2 0516

                                                                                                                                s3 0645

                                                                                                                                s4 1

                                                                                                                                89

                                                                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                90

                                                                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                FROM S

                                                                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                s1 Smith Paris good good

                                                                                                                                s2 Jones 100 london good VGood

                                                                                                                                s3 Blake 30 Paris good good

                                                                                                                                s4 Clark 10 london OK OK

                                                                                                                                s5 Adams 30 Athens good good

                                                                                                                                bull Notez le traitement du null

                                                                                                                                91

                                                                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                                                                FROM P where weight gt 13

                                                                                                                                union

                                                                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                UNION

                                                                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                ORDER BY warning DESC weight DESC

                                                                                                                                pname weight Warning

                                                                                                                                cam 19 Very Heavy

                                                                                                                                cog 19 Very Heavy

                                                                                                                                bolt 17 Very Heavy

                                                                                                                                nut 14 Very Heavy

                                                                                                                                screw 14 Very Heavy

                                                                                                                                nut 14 Quite Heavy

                                                                                                                                screw 14 Quite Heavy

                                                                                                                                screw 12 Quite Heavy

                                                                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                92

                                                                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                SP

                                                                                                                                s p qtyQty1

                                                                                                                                s1 p1 300 400

                                                                                                                                s1 p2 200

                                                                                                                                s1 p3 400 600

                                                                                                                                s1 p4 200 300

                                                                                                                                s1 p5 100

                                                                                                                                s1 p6 100 200

                                                                                                                                s2 p2 300 500

                                                                                                                                s3 p2 400

                                                                                                                                s4 p1 200 100

                                                                                                                                s4 p2 200

                                                                                                                                s4 p4 300

                                                                                                                                s4 p5 400

                                                                                                                                93

                                                                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                SP

                                                                                                                                s p qtyQty1

                                                                                                                                s1 p1 300 400

                                                                                                                                s1 p2 200

                                                                                                                                s1 p3 400 600

                                                                                                                                s1 p4 200 300

                                                                                                                                s1 p5 100

                                                                                                                                s1 p6 100 200

                                                                                                                                s2 p2 300 500

                                                                                                                                s3 p2 400

                                                                                                                                s4 p1 200 100

                                                                                                                                s4 p2 200

                                                                                                                                s4 p4 300

                                                                                                                                s4 p5 400

                                                                                                                                qty for partpredicted or

                                                                                                                                unknown Qty1

                                                                                                                                100 p5

                                                                                                                                100 predicted value 200

                                                                                                                                200 p2

                                                                                                                                200 predicted value 200

                                                                                                                                300 p4

                                                                                                                                300 predicted value 450

                                                                                                                                400 p2

                                                                                                                                400 p5

                                                                                                                                400 predicted value 600

                                                                                                                                94

                                                                                                                                Tendance

                                                                                                                                qty Qty1

                                                                                                                                100 200

                                                                                                                                200 300

                                                                                                                                300 400

                                                                                                                                400 600

                                                                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                Graph 3D avec Qty en abscisses

                                                                                                                                95

                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                30102008 120 27102008 4

                                                                                                                                25102008 131 22102008 4

                                                                                                                                23102008 127 20102008 4

                                                                                                                                17102008 269 14102008 4

                                                                                                                                15102008 60 12102008 4

                                                                                                                                11102008 295 08102008 4

                                                                                                                                09102008 340 06102008 4

                                                                                                                                08102008 324 05102008 4

                                                                                                                                06102008 315 03102008 4

                                                                                                                                96

                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                Graphique avec une info-bulle

                                                                                                                                97

                                                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                glissantes

                                                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                                                bull MAVG

                                                                                                                                bull MSUM

                                                                                                                                bull MDIFF

                                                                                                                                bull Voir Teradata + loin

                                                                                                                                98

                                                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                99

                                                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                100

                                                                                                                                Seacuteries financiegraveres

                                                                                                                                capital taux nval apregraves n ans

                                                                                                                                taux1val1 apregraves n ans

                                                                                                                                GainAbs GainRel

                                                                                                                                100 005 1 105 006 106 1 1

                                                                                                                                100 005 2 110 006 112 2 2

                                                                                                                                100 005 3 115 006 119 4 4

                                                                                                                                100 005 4 121 006 126 5 5

                                                                                                                                100 005 5 127 006 133 6 6

                                                                                                                                100 005 6 134 006 141 7 7

                                                                                                                                100 005 7 140 006 150 10 10

                                                                                                                                100 005 8 147 006 159 12 12

                                                                                                                                100 005 9 155 006 168 13 13

                                                                                                                                100 005 10 162 006 179 17 17

                                                                                                                                100 005 11 171 006 189 18 18

                                                                                                                                100 005 12 179 006 201 22 22

                                                                                                                                100 005 13 188 006 213 25 25

                                                                                                                                100 005 14 197 006 226 29 29

                                                                                                                                100 005 15 207 006 239 32 32

                                                                                                                                100 005 16 218 006 254 36 36

                                                                                                                                100 005 17 229 006 269 40 40

                                                                                                                                100 005 18 240 006 285 45 45

                                                                                                                                100 005 19 252 006 302 50 50

                                                                                                                                100 005 20 265 006 320 55 55

                                                                                                                                101

                                                                                                                                Seacuteries financiegraveres

                                                                                                                                102

                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                financiers de la table Produits

                                                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                bull En ordre descendant de prix

                                                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                bull Plusieurs actionshellip

                                                                                                                                103

                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                P prix

                                                                                                                                p3 200

                                                                                                                                p1 200

                                                                                                                                p2 400

                                                                                                                                p3 200

                                                                                                                                p4 100

                                                                                                                                p6 100

                                                                                                                                p5 300

                                                                                                                                p8 300

                                                                                                                                p7 400

                                                                                                                                p10 200

                                                                                                                                p12 300

                                                                                                                                p13 300

                                                                                                                                104

                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                                105

                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                106

                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                107

                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                108

                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                109

                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                110

                                                                                                                                GROUPING SETS

                                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                HAVING tot-qty gt 100

                                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                111

                                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                                112

                                                                                                                                ROLLUP

                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                113

                                                                                                                                ROLLUP

                                                                                                                                114

                                                                                                                                ROLLUP

                                                                                                                                Et le CUBE

                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                de certains nuls

                                                                                                                                115

                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                Wiley (publ)

                                                                                                                                116

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                117

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                118

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                119

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                120

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                121

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                122

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                123

                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                Exeacutecution autonome

                                                                                                                                124

                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                hellip

                                                                                                                                125

                                                                                                                                Liste de Choix Multibase

                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                126

                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                148

                                                                                                                                FIN

                                                                                                                                149

                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                • Slide 3
                                                                                                                                • Synonymes
                                                                                                                                • Noms dattributs
                                                                                                                                • Slide 6
                                                                                                                                • Slide 7
                                                                                                                                • Slide 8
                                                                                                                                • Insertion dans une Vue
                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                • Expressions de valeur
                                                                                                                                • Expressions de valeur (2)
                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                • UNION et ORDER BY
                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                • Preacutedicat TOP
                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                • Clause BETWEEN
                                                                                                                                • Limitations de NOT
                                                                                                                                • ANY et ALL
                                                                                                                                • Injection SQL
                                                                                                                                • Injection SQL (2)
                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                • XOR
                                                                                                                                • IMP
                                                                                                                                • Sous-requecirctes
                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                • Valeurs nulles
                                                                                                                                • Valeurs nulles (2)
                                                                                                                                • Valeurs nulles (3)
                                                                                                                                • Valeurs nulles (4)
                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                • Fonction Scalaire RND
                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                • Fonction DDB
                                                                                                                                • Fonction DDB (2)
                                                                                                                                • Fonction PMT
                                                                                                                                • Fonction PMT (2)
                                                                                                                                • Placement agrave taux variable
                                                                                                                                • GROUP BY
                                                                                                                                • LIST Function
                                                                                                                                • LIST Function (2)
                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                • GROUP BY (2)
                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                • T-GROUP BY
                                                                                                                                • T-GROUP BY (2)
                                                                                                                                • T-GROUP BY (3)
                                                                                                                                • T-GROUP BY (4)
                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                • Distribution
                                                                                                                                • Reacutesultat
                                                                                                                                • Distribution Cumulative
                                                                                                                                • Reacutesultat (2)
                                                                                                                                • Cateacutegorisation
                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                • Tendance
                                                                                                                                • Moyenne Glissante
                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                • GROUPING SETS
                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                • Slide 112
                                                                                                                                • Slide 113
                                                                                                                                • Slide 114
                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                • Liste de Choix Multibase
                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                • FIN
                                                                                                                                • Slide 149

                                                                                                                                  65

                                                                                                                                  Fonctions Financiegraveres

                                                                                                                                  Fonction DDB Calcule lamortissement deacutegressif

                                                                                                                                  pendant une peacuteriode selon un taux speacutecifieacute ou double par deacutefaut

                                                                                                                                  DDB(coucirct VReacutesiduelle VieUtile Peacuteriode [ taux] )

                                                                                                                                  Valeur reacutesiduelle est une valeur deacutesireacutee seulementndash Lrsquoamortissement devient zeacutero si lrsquoon lrsquoatteint

                                                                                                                                  66

                                                                                                                                  Fonction DDB

                                                                                                                                  insert into DDB (cost salvage life factor amortiss period)

                                                                                                                                  select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                                  DDB(cost salvage life period factor) as amortiss period

                                                                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                  Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                                  67

                                                                                                                                  Fonction DDB

                                                                                                                                  INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                                  SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                                  DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                                  Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                  68

                                                                                                                                  Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                                  en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                                  Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                                  nombres neacutegatifs

                                                                                                                                  Fonction PMT

                                                                                                                                  69

                                                                                                                                  Fonction PMT

                                                                                                                                  SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                                  Fonction PMT calcul dannuiteacute demprunt

                                                                                                                                  Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                                  preacutesentevaleur_payeacutee surprime

                                                                                                                                  -16049 005 20 200000 -320980 -120980

                                                                                                                                  70

                                                                                                                                  Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                  ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                  SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                  Et les nuls que log ne supporte pas

                                                                                                                                  Anneacutee relative

                                                                                                                                  Taux

                                                                                                                                  1 4

                                                                                                                                  2 4

                                                                                                                                  3 3

                                                                                                                                  4 5

                                                                                                                                  5 5

                                                                                                                                  Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                  71

                                                                                                                                  GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                  requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                  est eacutequivalente agrave

                                                                                                                                  SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                  WHERE XP = SPP) FROM SP

                                                                                                                                  Testez

                                                                                                                                  Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                  72

                                                                                                                                  LIST Function La requecircte

                                                                                                                                  SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                  Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                  Comme les tabulations croiseacutees

                                                                                                                                  ndash Mais en + simple

                                                                                                                                  LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                  ndash En mono attribut (2004)

                                                                                                                                  En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                  sous-formulaires

                                                                                                                                  73

                                                                                                                                  LIST Function

                                                                                                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                  74

                                                                                                                                  GROUP BY avec WHERE

                                                                                                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                  75

                                                                                                                                  GROUP BY

                                                                                                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                  Pourquoi

                                                                                                                                  76

                                                                                                                                  GROUP BY avec HAVING

                                                                                                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                  77

                                                                                                                                  T-GROUP BY Proposeacute pour SQL

                                                                                                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                  Le rocircle de -join par rapport agrave equi-join

                                                                                                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                  78

                                                                                                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                  FROM SP Vrai ou Faux

                                                                                                                                  79

                                                                                                                                  T-GROUP BY

                                                                                                                                  Reacutesultat

                                                                                                                                  part avg_qty_other_parts part_avg_qty

                                                                                                                                  p1 250 300

                                                                                                                                  p2 262 250

                                                                                                                                  p3 245 400

                                                                                                                                  p4 260 250

                                                                                                                                  p5 260 250

                                                                                                                                  p6 272 100

                                                                                                                                  80

                                                                                                                                  T-GROUP BY

                                                                                                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                  81

                                                                                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                  s p qtyND-rank

                                                                                                                                  s4 p5 400 1

                                                                                                                                  s3 p2 400 1

                                                                                                                                  s1 p3 400 1

                                                                                                                                  s4 p4 300 4

                                                                                                                                  s2 p2 300 4

                                                                                                                                  s1 p1 300 4

                                                                                                                                  s4 p2 200 7

                                                                                                                                  s1 p4 200 7

                                                                                                                                  s1 p2 200 7

                                                                                                                                  s4 p1 200 7

                                                                                                                                  s1 p6 100 11

                                                                                                                                  s1 p5 100 11

                                                                                                                                  82

                                                                                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                  s p qty ND-rank

                                                                                                                                  s4 p5 400 1

                                                                                                                                  s3 p2 400 1

                                                                                                                                  s1 p3 400 1

                                                                                                                                  s4 p4 300 4

                                                                                                                                  s2 p2 300 4

                                                                                                                                  s1 p1 300 4

                                                                                                                                  s4 p2 200 7

                                                                                                                                  s1 p4 200 7

                                                                                                                                  s1 p2 200 7

                                                                                                                                  s4 p1 200 7

                                                                                                                                  s1 p6 100 11

                                                                                                                                  s1 p5 100 11

                                                                                                                                  83

                                                                                                                                  Rangs Denses(Dense Ranking)

                                                                                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                  s p qtyD-rank

                                                                                                                                  s1 p3 400 1

                                                                                                                                  s3 p2 400 1

                                                                                                                                  s4 p5 400 1

                                                                                                                                  s1 p1 300 2

                                                                                                                                  s2 p2 300 2

                                                                                                                                  s4 p4 300 2

                                                                                                                                  s1 p4 200 3

                                                                                                                                  s1 p2 200 3

                                                                                                                                  s4 p2 200 3

                                                                                                                                  s4 p1 200 3

                                                                                                                                  s1 p6 100 4

                                                                                                                                  s1 p5 100 4

                                                                                                                                  84

                                                                                                                                  Rangs DensesGraphique MsAccess

                                                                                                                                  s p qty D-rank

                                                                                                                                  s1 p3 400 1

                                                                                                                                  s3 p2 400 1

                                                                                                                                  s4 p5 400 1

                                                                                                                                  s1 p1 300 2

                                                                                                                                  s2 p2 300 2

                                                                                                                                  s4 p4 300 2

                                                                                                                                  s1 p4 200 3

                                                                                                                                  s1 p2 200 3

                                                                                                                                  s4 p2 200 3

                                                                                                                                  s4 p1 200 3

                                                                                                                                  s1 p6 100 4

                                                                                                                                  s1 p5 100 4

                                                                                                                                  85

                                                                                                                                  Distribution

                                                                                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                  86

                                                                                                                                  Reacutesultat

                                                                                                                                  s Distribution

                                                                                                                                  s1 0419

                                                                                                                                  s2 0097

                                                                                                                                  s3 0129

                                                                                                                                  s4 0355

                                                                                                                                  87

                                                                                                                                  Distribution Cumulative

                                                                                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                  FROM SP

                                                                                                                                  ORDER BY SP[s]

                                                                                                                                  88

                                                                                                                                  Reacutesultat

                                                                                                                                  sDistribution Cumuleacutee

                                                                                                                                  s1 0419

                                                                                                                                  s2 0516

                                                                                                                                  s3 0645

                                                                                                                                  s4 1

                                                                                                                                  89

                                                                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                  90

                                                                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                  FROM S

                                                                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                  s1 Smith Paris good good

                                                                                                                                  s2 Jones 100 london good VGood

                                                                                                                                  s3 Blake 30 Paris good good

                                                                                                                                  s4 Clark 10 london OK OK

                                                                                                                                  s5 Adams 30 Athens good good

                                                                                                                                  bull Notez le traitement du null

                                                                                                                                  91

                                                                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                                                                  FROM P where weight gt 13

                                                                                                                                  union

                                                                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                  UNION

                                                                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                  ORDER BY warning DESC weight DESC

                                                                                                                                  pname weight Warning

                                                                                                                                  cam 19 Very Heavy

                                                                                                                                  cog 19 Very Heavy

                                                                                                                                  bolt 17 Very Heavy

                                                                                                                                  nut 14 Very Heavy

                                                                                                                                  screw 14 Very Heavy

                                                                                                                                  nut 14 Quite Heavy

                                                                                                                                  screw 14 Quite Heavy

                                                                                                                                  screw 12 Quite Heavy

                                                                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                  92

                                                                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                  SP

                                                                                                                                  s p qtyQty1

                                                                                                                                  s1 p1 300 400

                                                                                                                                  s1 p2 200

                                                                                                                                  s1 p3 400 600

                                                                                                                                  s1 p4 200 300

                                                                                                                                  s1 p5 100

                                                                                                                                  s1 p6 100 200

                                                                                                                                  s2 p2 300 500

                                                                                                                                  s3 p2 400

                                                                                                                                  s4 p1 200 100

                                                                                                                                  s4 p2 200

                                                                                                                                  s4 p4 300

                                                                                                                                  s4 p5 400

                                                                                                                                  93

                                                                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                  SP

                                                                                                                                  s p qtyQty1

                                                                                                                                  s1 p1 300 400

                                                                                                                                  s1 p2 200

                                                                                                                                  s1 p3 400 600

                                                                                                                                  s1 p4 200 300

                                                                                                                                  s1 p5 100

                                                                                                                                  s1 p6 100 200

                                                                                                                                  s2 p2 300 500

                                                                                                                                  s3 p2 400

                                                                                                                                  s4 p1 200 100

                                                                                                                                  s4 p2 200

                                                                                                                                  s4 p4 300

                                                                                                                                  s4 p5 400

                                                                                                                                  qty for partpredicted or

                                                                                                                                  unknown Qty1

                                                                                                                                  100 p5

                                                                                                                                  100 predicted value 200

                                                                                                                                  200 p2

                                                                                                                                  200 predicted value 200

                                                                                                                                  300 p4

                                                                                                                                  300 predicted value 450

                                                                                                                                  400 p2

                                                                                                                                  400 p5

                                                                                                                                  400 predicted value 600

                                                                                                                                  94

                                                                                                                                  Tendance

                                                                                                                                  qty Qty1

                                                                                                                                  100 200

                                                                                                                                  200 300

                                                                                                                                  300 400

                                                                                                                                  400 600

                                                                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                  Graph 3D avec Qty en abscisses

                                                                                                                                  95

                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                  30102008 120 27102008 4

                                                                                                                                  25102008 131 22102008 4

                                                                                                                                  23102008 127 20102008 4

                                                                                                                                  17102008 269 14102008 4

                                                                                                                                  15102008 60 12102008 4

                                                                                                                                  11102008 295 08102008 4

                                                                                                                                  09102008 340 06102008 4

                                                                                                                                  08102008 324 05102008 4

                                                                                                                                  06102008 315 03102008 4

                                                                                                                                  96

                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                  Graphique avec une info-bulle

                                                                                                                                  97

                                                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                  glissantes

                                                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                                                  bull MAVG

                                                                                                                                  bull MSUM

                                                                                                                                  bull MDIFF

                                                                                                                                  bull Voir Teradata + loin

                                                                                                                                  98

                                                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                  99

                                                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                  100

                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                  capital taux nval apregraves n ans

                                                                                                                                  taux1val1 apregraves n ans

                                                                                                                                  GainAbs GainRel

                                                                                                                                  100 005 1 105 006 106 1 1

                                                                                                                                  100 005 2 110 006 112 2 2

                                                                                                                                  100 005 3 115 006 119 4 4

                                                                                                                                  100 005 4 121 006 126 5 5

                                                                                                                                  100 005 5 127 006 133 6 6

                                                                                                                                  100 005 6 134 006 141 7 7

                                                                                                                                  100 005 7 140 006 150 10 10

                                                                                                                                  100 005 8 147 006 159 12 12

                                                                                                                                  100 005 9 155 006 168 13 13

                                                                                                                                  100 005 10 162 006 179 17 17

                                                                                                                                  100 005 11 171 006 189 18 18

                                                                                                                                  100 005 12 179 006 201 22 22

                                                                                                                                  100 005 13 188 006 213 25 25

                                                                                                                                  100 005 14 197 006 226 29 29

                                                                                                                                  100 005 15 207 006 239 32 32

                                                                                                                                  100 005 16 218 006 254 36 36

                                                                                                                                  100 005 17 229 006 269 40 40

                                                                                                                                  100 005 18 240 006 285 45 45

                                                                                                                                  100 005 19 252 006 302 50 50

                                                                                                                                  100 005 20 265 006 320 55 55

                                                                                                                                  101

                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                  102

                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                  financiers de la table Produits

                                                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                  bull En ordre descendant de prix

                                                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                  bull Plusieurs actionshellip

                                                                                                                                  103

                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                  P prix

                                                                                                                                  p3 200

                                                                                                                                  p1 200

                                                                                                                                  p2 400

                                                                                                                                  p3 200

                                                                                                                                  p4 100

                                                                                                                                  p6 100

                                                                                                                                  p5 300

                                                                                                                                  p8 300

                                                                                                                                  p7 400

                                                                                                                                  p10 200

                                                                                                                                  p12 300

                                                                                                                                  p13 300

                                                                                                                                  104

                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                  ORDER BY 4 desc 8 123

                                                                                                                                  105

                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                  106

                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                  107

                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                  108

                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                  109

                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                  110

                                                                                                                                  GROUPING SETS

                                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                  HAVING tot-qty gt 100

                                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                  111

                                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                                  112

                                                                                                                                  ROLLUP

                                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                                  113

                                                                                                                                  ROLLUP

                                                                                                                                  114

                                                                                                                                  ROLLUP

                                                                                                                                  Et le CUBE

                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                  de certains nuls

                                                                                                                                  115

                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                  Wiley (publ)

                                                                                                                                  116

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                  117

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                  118

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  119

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  120

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  121

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  122

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                  123

                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                  Exeacutecution autonome

                                                                                                                                  124

                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                  hellip

                                                                                                                                  125

                                                                                                                                  Liste de Choix Multibase

                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                  126

                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                  148

                                                                                                                                  FIN

                                                                                                                                  149

                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                  • Slide 3
                                                                                                                                  • Synonymes
                                                                                                                                  • Noms dattributs
                                                                                                                                  • Slide 6
                                                                                                                                  • Slide 7
                                                                                                                                  • Slide 8
                                                                                                                                  • Insertion dans une Vue
                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                  • Expressions de valeur
                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                  • UNION et ORDER BY
                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                  • Preacutedicat TOP
                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                  • Clause BETWEEN
                                                                                                                                  • Limitations de NOT
                                                                                                                                  • ANY et ALL
                                                                                                                                  • Injection SQL
                                                                                                                                  • Injection SQL (2)
                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                  • XOR
                                                                                                                                  • IMP
                                                                                                                                  • Sous-requecirctes
                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                  • Valeurs nulles
                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                  • Fonction DDB
                                                                                                                                  • Fonction DDB (2)
                                                                                                                                  • Fonction PMT
                                                                                                                                  • Fonction PMT (2)
                                                                                                                                  • Placement agrave taux variable
                                                                                                                                  • GROUP BY
                                                                                                                                  • LIST Function
                                                                                                                                  • LIST Function (2)
                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                  • GROUP BY (2)
                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                  • T-GROUP BY
                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                  • Distribution
                                                                                                                                  • Reacutesultat
                                                                                                                                  • Distribution Cumulative
                                                                                                                                  • Reacutesultat (2)
                                                                                                                                  • Cateacutegorisation
                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                  • Tendance
                                                                                                                                  • Moyenne Glissante
                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                  • GROUPING SETS
                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                  • Slide 112
                                                                                                                                  • Slide 113
                                                                                                                                  • Slide 114
                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                  • FIN
                                                                                                                                  • Slide 149

                                                                                                                                    66

                                                                                                                                    Fonction DDB

                                                                                                                                    insert into DDB (cost salvage life factor amortiss period)

                                                                                                                                    select 100 as cost 70 as salvage 5 as life 1 as factor

                                                                                                                                    DDB(cost salvage life period factor) as amortiss period

                                                                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                    Comment calculer aussi la valeur reacutesiduelle reacuteelle agrave la fin de chaque peacuteriode

                                                                                                                                    67

                                                                                                                                    Fonction DDB

                                                                                                                                    INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                                    SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                                    DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                                    Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                    68

                                                                                                                                    Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                                    en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                                    Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                                    nombres neacutegatifs

                                                                                                                                    Fonction PMT

                                                                                                                                    69

                                                                                                                                    Fonction PMT

                                                                                                                                    SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                                    Fonction PMT calcul dannuiteacute demprunt

                                                                                                                                    Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                                    preacutesentevaleur_payeacutee surprime

                                                                                                                                    -16049 005 20 200000 -320980 -120980

                                                                                                                                    70

                                                                                                                                    Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                    ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                    SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                    Et les nuls que log ne supporte pas

                                                                                                                                    Anneacutee relative

                                                                                                                                    Taux

                                                                                                                                    1 4

                                                                                                                                    2 4

                                                                                                                                    3 3

                                                                                                                                    4 5

                                                                                                                                    5 5

                                                                                                                                    Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                    71

                                                                                                                                    GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                    requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                    est eacutequivalente agrave

                                                                                                                                    SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                    WHERE XP = SPP) FROM SP

                                                                                                                                    Testez

                                                                                                                                    Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                    72

                                                                                                                                    LIST Function La requecircte

                                                                                                                                    SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                    Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                    Comme les tabulations croiseacutees

                                                                                                                                    ndash Mais en + simple

                                                                                                                                    LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                    ndash En mono attribut (2004)

                                                                                                                                    En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                    sous-formulaires

                                                                                                                                    73

                                                                                                                                    LIST Function

                                                                                                                                    Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                    for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                    74

                                                                                                                                    GROUP BY avec WHERE

                                                                                                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                    75

                                                                                                                                    GROUP BY

                                                                                                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                    Pourquoi

                                                                                                                                    76

                                                                                                                                    GROUP BY avec HAVING

                                                                                                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                    77

                                                                                                                                    T-GROUP BY Proposeacute pour SQL

                                                                                                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                    Le rocircle de -join par rapport agrave equi-join

                                                                                                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                    78

                                                                                                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                    FROM SP Vrai ou Faux

                                                                                                                                    79

                                                                                                                                    T-GROUP BY

                                                                                                                                    Reacutesultat

                                                                                                                                    part avg_qty_other_parts part_avg_qty

                                                                                                                                    p1 250 300

                                                                                                                                    p2 262 250

                                                                                                                                    p3 245 400

                                                                                                                                    p4 260 250

                                                                                                                                    p5 260 250

                                                                                                                                    p6 272 100

                                                                                                                                    80

                                                                                                                                    T-GROUP BY

                                                                                                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                    81

                                                                                                                                    Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                    s p qtyND-rank

                                                                                                                                    s4 p5 400 1

                                                                                                                                    s3 p2 400 1

                                                                                                                                    s1 p3 400 1

                                                                                                                                    s4 p4 300 4

                                                                                                                                    s2 p2 300 4

                                                                                                                                    s1 p1 300 4

                                                                                                                                    s4 p2 200 7

                                                                                                                                    s1 p4 200 7

                                                                                                                                    s1 p2 200 7

                                                                                                                                    s4 p1 200 7

                                                                                                                                    s1 p6 100 11

                                                                                                                                    s1 p5 100 11

                                                                                                                                    82

                                                                                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                    s p qty ND-rank

                                                                                                                                    s4 p5 400 1

                                                                                                                                    s3 p2 400 1

                                                                                                                                    s1 p3 400 1

                                                                                                                                    s4 p4 300 4

                                                                                                                                    s2 p2 300 4

                                                                                                                                    s1 p1 300 4

                                                                                                                                    s4 p2 200 7

                                                                                                                                    s1 p4 200 7

                                                                                                                                    s1 p2 200 7

                                                                                                                                    s4 p1 200 7

                                                                                                                                    s1 p6 100 11

                                                                                                                                    s1 p5 100 11

                                                                                                                                    83

                                                                                                                                    Rangs Denses(Dense Ranking)

                                                                                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                    s p qtyD-rank

                                                                                                                                    s1 p3 400 1

                                                                                                                                    s3 p2 400 1

                                                                                                                                    s4 p5 400 1

                                                                                                                                    s1 p1 300 2

                                                                                                                                    s2 p2 300 2

                                                                                                                                    s4 p4 300 2

                                                                                                                                    s1 p4 200 3

                                                                                                                                    s1 p2 200 3

                                                                                                                                    s4 p2 200 3

                                                                                                                                    s4 p1 200 3

                                                                                                                                    s1 p6 100 4

                                                                                                                                    s1 p5 100 4

                                                                                                                                    84

                                                                                                                                    Rangs DensesGraphique MsAccess

                                                                                                                                    s p qty D-rank

                                                                                                                                    s1 p3 400 1

                                                                                                                                    s3 p2 400 1

                                                                                                                                    s4 p5 400 1

                                                                                                                                    s1 p1 300 2

                                                                                                                                    s2 p2 300 2

                                                                                                                                    s4 p4 300 2

                                                                                                                                    s1 p4 200 3

                                                                                                                                    s1 p2 200 3

                                                                                                                                    s4 p2 200 3

                                                                                                                                    s4 p1 200 3

                                                                                                                                    s1 p6 100 4

                                                                                                                                    s1 p5 100 4

                                                                                                                                    85

                                                                                                                                    Distribution

                                                                                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                    86

                                                                                                                                    Reacutesultat

                                                                                                                                    s Distribution

                                                                                                                                    s1 0419

                                                                                                                                    s2 0097

                                                                                                                                    s3 0129

                                                                                                                                    s4 0355

                                                                                                                                    87

                                                                                                                                    Distribution Cumulative

                                                                                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                    FROM SP

                                                                                                                                    ORDER BY SP[s]

                                                                                                                                    88

                                                                                                                                    Reacutesultat

                                                                                                                                    sDistribution Cumuleacutee

                                                                                                                                    s1 0419

                                                                                                                                    s2 0516

                                                                                                                                    s3 0645

                                                                                                                                    s4 1

                                                                                                                                    89

                                                                                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                    90

                                                                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                    FROM S

                                                                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                    s1 Smith Paris good good

                                                                                                                                    s2 Jones 100 london good VGood

                                                                                                                                    s3 Blake 30 Paris good good

                                                                                                                                    s4 Clark 10 london OK OK

                                                                                                                                    s5 Adams 30 Athens good good

                                                                                                                                    bull Notez le traitement du null

                                                                                                                                    91

                                                                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                                                                    FROM P where weight gt 13

                                                                                                                                    union

                                                                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                    UNION

                                                                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                    ORDER BY warning DESC weight DESC

                                                                                                                                    pname weight Warning

                                                                                                                                    cam 19 Very Heavy

                                                                                                                                    cog 19 Very Heavy

                                                                                                                                    bolt 17 Very Heavy

                                                                                                                                    nut 14 Very Heavy

                                                                                                                                    screw 14 Very Heavy

                                                                                                                                    nut 14 Quite Heavy

                                                                                                                                    screw 14 Quite Heavy

                                                                                                                                    screw 12 Quite Heavy

                                                                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                    92

                                                                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                    SP

                                                                                                                                    s p qtyQty1

                                                                                                                                    s1 p1 300 400

                                                                                                                                    s1 p2 200

                                                                                                                                    s1 p3 400 600

                                                                                                                                    s1 p4 200 300

                                                                                                                                    s1 p5 100

                                                                                                                                    s1 p6 100 200

                                                                                                                                    s2 p2 300 500

                                                                                                                                    s3 p2 400

                                                                                                                                    s4 p1 200 100

                                                                                                                                    s4 p2 200

                                                                                                                                    s4 p4 300

                                                                                                                                    s4 p5 400

                                                                                                                                    93

                                                                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                    SP

                                                                                                                                    s p qtyQty1

                                                                                                                                    s1 p1 300 400

                                                                                                                                    s1 p2 200

                                                                                                                                    s1 p3 400 600

                                                                                                                                    s1 p4 200 300

                                                                                                                                    s1 p5 100

                                                                                                                                    s1 p6 100 200

                                                                                                                                    s2 p2 300 500

                                                                                                                                    s3 p2 400

                                                                                                                                    s4 p1 200 100

                                                                                                                                    s4 p2 200

                                                                                                                                    s4 p4 300

                                                                                                                                    s4 p5 400

                                                                                                                                    qty for partpredicted or

                                                                                                                                    unknown Qty1

                                                                                                                                    100 p5

                                                                                                                                    100 predicted value 200

                                                                                                                                    200 p2

                                                                                                                                    200 predicted value 200

                                                                                                                                    300 p4

                                                                                                                                    300 predicted value 450

                                                                                                                                    400 p2

                                                                                                                                    400 p5

                                                                                                                                    400 predicted value 600

                                                                                                                                    94

                                                                                                                                    Tendance

                                                                                                                                    qty Qty1

                                                                                                                                    100 200

                                                                                                                                    200 300

                                                                                                                                    300 400

                                                                                                                                    400 600

                                                                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                    Graph 3D avec Qty en abscisses

                                                                                                                                    95

                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                    30102008 120 27102008 4

                                                                                                                                    25102008 131 22102008 4

                                                                                                                                    23102008 127 20102008 4

                                                                                                                                    17102008 269 14102008 4

                                                                                                                                    15102008 60 12102008 4

                                                                                                                                    11102008 295 08102008 4

                                                                                                                                    09102008 340 06102008 4

                                                                                                                                    08102008 324 05102008 4

                                                                                                                                    06102008 315 03102008 4

                                                                                                                                    96

                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                    Graphique avec une info-bulle

                                                                                                                                    97

                                                                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                    glissantes

                                                                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                                                                    bull MAVG

                                                                                                                                    bull MSUM

                                                                                                                                    bull MDIFF

                                                                                                                                    bull Voir Teradata + loin

                                                                                                                                    98

                                                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                    99

                                                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                    100

                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                    capital taux nval apregraves n ans

                                                                                                                                    taux1val1 apregraves n ans

                                                                                                                                    GainAbs GainRel

                                                                                                                                    100 005 1 105 006 106 1 1

                                                                                                                                    100 005 2 110 006 112 2 2

                                                                                                                                    100 005 3 115 006 119 4 4

                                                                                                                                    100 005 4 121 006 126 5 5

                                                                                                                                    100 005 5 127 006 133 6 6

                                                                                                                                    100 005 6 134 006 141 7 7

                                                                                                                                    100 005 7 140 006 150 10 10

                                                                                                                                    100 005 8 147 006 159 12 12

                                                                                                                                    100 005 9 155 006 168 13 13

                                                                                                                                    100 005 10 162 006 179 17 17

                                                                                                                                    100 005 11 171 006 189 18 18

                                                                                                                                    100 005 12 179 006 201 22 22

                                                                                                                                    100 005 13 188 006 213 25 25

                                                                                                                                    100 005 14 197 006 226 29 29

                                                                                                                                    100 005 15 207 006 239 32 32

                                                                                                                                    100 005 16 218 006 254 36 36

                                                                                                                                    100 005 17 229 006 269 40 40

                                                                                                                                    100 005 18 240 006 285 45 45

                                                                                                                                    100 005 19 252 006 302 50 50

                                                                                                                                    100 005 20 265 006 320 55 55

                                                                                                                                    101

                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                    102

                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                    financiers de la table Produits

                                                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                    bull En ordre descendant de prix

                                                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                    bull Plusieurs actionshellip

                                                                                                                                    103

                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                    P prix

                                                                                                                                    p3 200

                                                                                                                                    p1 200

                                                                                                                                    p2 400

                                                                                                                                    p3 200

                                                                                                                                    p4 100

                                                                                                                                    p6 100

                                                                                                                                    p5 300

                                                                                                                                    p8 300

                                                                                                                                    p7 400

                                                                                                                                    p10 200

                                                                                                                                    p12 300

                                                                                                                                    p13 300

                                                                                                                                    104

                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                    ORDER BY 4 desc 8 123

                                                                                                                                    105

                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                    106

                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                    107

                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                    108

                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                    109

                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                    110

                                                                                                                                    GROUPING SETS

                                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                    HAVING tot-qty gt 100

                                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                    111

                                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                                    112

                                                                                                                                    ROLLUP

                                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                                    113

                                                                                                                                    ROLLUP

                                                                                                                                    114

                                                                                                                                    ROLLUP

                                                                                                                                    Et le CUBE

                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                    de certains nuls

                                                                                                                                    115

                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                    Wiley (publ)

                                                                                                                                    116

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                    117

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                    118

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    119

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    120

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    121

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    122

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                    123

                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                    Exeacutecution autonome

                                                                                                                                    124

                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                    hellip

                                                                                                                                    125

                                                                                                                                    Liste de Choix Multibase

                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                    126

                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                    148

                                                                                                                                    FIN

                                                                                                                                    149

                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                    • Slide 3
                                                                                                                                    • Synonymes
                                                                                                                                    • Noms dattributs
                                                                                                                                    • Slide 6
                                                                                                                                    • Slide 7
                                                                                                                                    • Slide 8
                                                                                                                                    • Insertion dans une Vue
                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                    • Expressions de valeur
                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                    • UNION et ORDER BY
                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                    • Preacutedicat TOP
                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                    • Clause BETWEEN
                                                                                                                                    • Limitations de NOT
                                                                                                                                    • ANY et ALL
                                                                                                                                    • Injection SQL
                                                                                                                                    • Injection SQL (2)
                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                    • XOR
                                                                                                                                    • IMP
                                                                                                                                    • Sous-requecirctes
                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                    • Valeurs nulles
                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                    • Fonction DDB
                                                                                                                                    • Fonction DDB (2)
                                                                                                                                    • Fonction PMT
                                                                                                                                    • Fonction PMT (2)
                                                                                                                                    • Placement agrave taux variable
                                                                                                                                    • GROUP BY
                                                                                                                                    • LIST Function
                                                                                                                                    • LIST Function (2)
                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                    • GROUP BY (2)
                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                    • T-GROUP BY
                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                    • Distribution
                                                                                                                                    • Reacutesultat
                                                                                                                                    • Distribution Cumulative
                                                                                                                                    • Reacutesultat (2)
                                                                                                                                    • Cateacutegorisation
                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                    • Tendance
                                                                                                                                    • Moyenne Glissante
                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                    • GROUPING SETS
                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                    • Slide 112
                                                                                                                                    • Slide 113
                                                                                                                                    • Slide 114
                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                    • FIN
                                                                                                                                    • Slide 149

                                                                                                                                      67

                                                                                                                                      Fonction DDB

                                                                                                                                      INSERT INTO DDB ( cost salvage life factor amortiss period )

                                                                                                                                      SELECT 100 AS cost 20 AS salvage 5 AS life 05 AS factor

                                                                                                                                      DDB(costsalvagelifeperiodfactor) AS amortiss period

                                                                                                                                      Reacutesultat drsquoexeacutecutions pour les peacuteriodes = 1hellip5 Ordre de choix de valeurs nrsquoa pas drsquoimportance

                                                                                                                                      68

                                                                                                                                      Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                                      en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                                      Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                                      nombres neacutegatifs

                                                                                                                                      Fonction PMT

                                                                                                                                      69

                                                                                                                                      Fonction PMT

                                                                                                                                      SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                                      Fonction PMT calcul dannuiteacute demprunt

                                                                                                                                      Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                                      preacutesentevaleur_payeacutee surprime

                                                                                                                                      -16049 005 20 200000 -320980 -120980

                                                                                                                                      70

                                                                                                                                      Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                      ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                      SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                      Et les nuls que log ne supporte pas

                                                                                                                                      Anneacutee relative

                                                                                                                                      Taux

                                                                                                                                      1 4

                                                                                                                                      2 4

                                                                                                                                      3 3

                                                                                                                                      4 5

                                                                                                                                      5 5

                                                                                                                                      Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                      71

                                                                                                                                      GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                      requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                      est eacutequivalente agrave

                                                                                                                                      SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                      WHERE XP = SPP) FROM SP

                                                                                                                                      Testez

                                                                                                                                      Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                      72

                                                                                                                                      LIST Function La requecircte

                                                                                                                                      SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                      Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                      Comme les tabulations croiseacutees

                                                                                                                                      ndash Mais en + simple

                                                                                                                                      LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                      ndash En mono attribut (2004)

                                                                                                                                      En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                      sous-formulaires

                                                                                                                                      73

                                                                                                                                      LIST Function

                                                                                                                                      Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                      for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                      74

                                                                                                                                      GROUP BY avec WHERE

                                                                                                                                      Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                      est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                      Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                      75

                                                                                                                                      GROUP BY

                                                                                                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                      Pourquoi

                                                                                                                                      76

                                                                                                                                      GROUP BY avec HAVING

                                                                                                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                      77

                                                                                                                                      T-GROUP BY Proposeacute pour SQL

                                                                                                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                      Le rocircle de -join par rapport agrave equi-join

                                                                                                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                      78

                                                                                                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                      FROM SP Vrai ou Faux

                                                                                                                                      79

                                                                                                                                      T-GROUP BY

                                                                                                                                      Reacutesultat

                                                                                                                                      part avg_qty_other_parts part_avg_qty

                                                                                                                                      p1 250 300

                                                                                                                                      p2 262 250

                                                                                                                                      p3 245 400

                                                                                                                                      p4 260 250

                                                                                                                                      p5 260 250

                                                                                                                                      p6 272 100

                                                                                                                                      80

                                                                                                                                      T-GROUP BY

                                                                                                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                      81

                                                                                                                                      Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                      s p qtyND-rank

                                                                                                                                      s4 p5 400 1

                                                                                                                                      s3 p2 400 1

                                                                                                                                      s1 p3 400 1

                                                                                                                                      s4 p4 300 4

                                                                                                                                      s2 p2 300 4

                                                                                                                                      s1 p1 300 4

                                                                                                                                      s4 p2 200 7

                                                                                                                                      s1 p4 200 7

                                                                                                                                      s1 p2 200 7

                                                                                                                                      s4 p1 200 7

                                                                                                                                      s1 p6 100 11

                                                                                                                                      s1 p5 100 11

                                                                                                                                      82

                                                                                                                                      Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                      s p qty ND-rank

                                                                                                                                      s4 p5 400 1

                                                                                                                                      s3 p2 400 1

                                                                                                                                      s1 p3 400 1

                                                                                                                                      s4 p4 300 4

                                                                                                                                      s2 p2 300 4

                                                                                                                                      s1 p1 300 4

                                                                                                                                      s4 p2 200 7

                                                                                                                                      s1 p4 200 7

                                                                                                                                      s1 p2 200 7

                                                                                                                                      s4 p1 200 7

                                                                                                                                      s1 p6 100 11

                                                                                                                                      s1 p5 100 11

                                                                                                                                      83

                                                                                                                                      Rangs Denses(Dense Ranking)

                                                                                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                      s p qtyD-rank

                                                                                                                                      s1 p3 400 1

                                                                                                                                      s3 p2 400 1

                                                                                                                                      s4 p5 400 1

                                                                                                                                      s1 p1 300 2

                                                                                                                                      s2 p2 300 2

                                                                                                                                      s4 p4 300 2

                                                                                                                                      s1 p4 200 3

                                                                                                                                      s1 p2 200 3

                                                                                                                                      s4 p2 200 3

                                                                                                                                      s4 p1 200 3

                                                                                                                                      s1 p6 100 4

                                                                                                                                      s1 p5 100 4

                                                                                                                                      84

                                                                                                                                      Rangs DensesGraphique MsAccess

                                                                                                                                      s p qty D-rank

                                                                                                                                      s1 p3 400 1

                                                                                                                                      s3 p2 400 1

                                                                                                                                      s4 p5 400 1

                                                                                                                                      s1 p1 300 2

                                                                                                                                      s2 p2 300 2

                                                                                                                                      s4 p4 300 2

                                                                                                                                      s1 p4 200 3

                                                                                                                                      s1 p2 200 3

                                                                                                                                      s4 p2 200 3

                                                                                                                                      s4 p1 200 3

                                                                                                                                      s1 p6 100 4

                                                                                                                                      s1 p5 100 4

                                                                                                                                      85

                                                                                                                                      Distribution

                                                                                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                      86

                                                                                                                                      Reacutesultat

                                                                                                                                      s Distribution

                                                                                                                                      s1 0419

                                                                                                                                      s2 0097

                                                                                                                                      s3 0129

                                                                                                                                      s4 0355

                                                                                                                                      87

                                                                                                                                      Distribution Cumulative

                                                                                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                      FROM SP

                                                                                                                                      ORDER BY SP[s]

                                                                                                                                      88

                                                                                                                                      Reacutesultat

                                                                                                                                      sDistribution Cumuleacutee

                                                                                                                                      s1 0419

                                                                                                                                      s2 0516

                                                                                                                                      s3 0645

                                                                                                                                      s4 1

                                                                                                                                      89

                                                                                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                      90

                                                                                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                      FROM S

                                                                                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                      s1 Smith Paris good good

                                                                                                                                      s2 Jones 100 london good VGood

                                                                                                                                      s3 Blake 30 Paris good good

                                                                                                                                      s4 Clark 10 london OK OK

                                                                                                                                      s5 Adams 30 Athens good good

                                                                                                                                      bull Notez le traitement du null

                                                                                                                                      91

                                                                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                                                                      FROM P where weight gt 13

                                                                                                                                      union

                                                                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                      UNION

                                                                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                      ORDER BY warning DESC weight DESC

                                                                                                                                      pname weight Warning

                                                                                                                                      cam 19 Very Heavy

                                                                                                                                      cog 19 Very Heavy

                                                                                                                                      bolt 17 Very Heavy

                                                                                                                                      nut 14 Very Heavy

                                                                                                                                      screw 14 Very Heavy

                                                                                                                                      nut 14 Quite Heavy

                                                                                                                                      screw 14 Quite Heavy

                                                                                                                                      screw 12 Quite Heavy

                                                                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                      92

                                                                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                      SP

                                                                                                                                      s p qtyQty1

                                                                                                                                      s1 p1 300 400

                                                                                                                                      s1 p2 200

                                                                                                                                      s1 p3 400 600

                                                                                                                                      s1 p4 200 300

                                                                                                                                      s1 p5 100

                                                                                                                                      s1 p6 100 200

                                                                                                                                      s2 p2 300 500

                                                                                                                                      s3 p2 400

                                                                                                                                      s4 p1 200 100

                                                                                                                                      s4 p2 200

                                                                                                                                      s4 p4 300

                                                                                                                                      s4 p5 400

                                                                                                                                      93

                                                                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                      SP

                                                                                                                                      s p qtyQty1

                                                                                                                                      s1 p1 300 400

                                                                                                                                      s1 p2 200

                                                                                                                                      s1 p3 400 600

                                                                                                                                      s1 p4 200 300

                                                                                                                                      s1 p5 100

                                                                                                                                      s1 p6 100 200

                                                                                                                                      s2 p2 300 500

                                                                                                                                      s3 p2 400

                                                                                                                                      s4 p1 200 100

                                                                                                                                      s4 p2 200

                                                                                                                                      s4 p4 300

                                                                                                                                      s4 p5 400

                                                                                                                                      qty for partpredicted or

                                                                                                                                      unknown Qty1

                                                                                                                                      100 p5

                                                                                                                                      100 predicted value 200

                                                                                                                                      200 p2

                                                                                                                                      200 predicted value 200

                                                                                                                                      300 p4

                                                                                                                                      300 predicted value 450

                                                                                                                                      400 p2

                                                                                                                                      400 p5

                                                                                                                                      400 predicted value 600

                                                                                                                                      94

                                                                                                                                      Tendance

                                                                                                                                      qty Qty1

                                                                                                                                      100 200

                                                                                                                                      200 300

                                                                                                                                      300 400

                                                                                                                                      400 600

                                                                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                      Graph 3D avec Qty en abscisses

                                                                                                                                      95

                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                      30102008 120 27102008 4

                                                                                                                                      25102008 131 22102008 4

                                                                                                                                      23102008 127 20102008 4

                                                                                                                                      17102008 269 14102008 4

                                                                                                                                      15102008 60 12102008 4

                                                                                                                                      11102008 295 08102008 4

                                                                                                                                      09102008 340 06102008 4

                                                                                                                                      08102008 324 05102008 4

                                                                                                                                      06102008 315 03102008 4

                                                                                                                                      96

                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                      Graphique avec une info-bulle

                                                                                                                                      97

                                                                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                      glissantes

                                                                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                                                                      bull MAVG

                                                                                                                                      bull MSUM

                                                                                                                                      bull MDIFF

                                                                                                                                      bull Voir Teradata + loin

                                                                                                                                      98

                                                                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                      99

                                                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                      100

                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                      capital taux nval apregraves n ans

                                                                                                                                      taux1val1 apregraves n ans

                                                                                                                                      GainAbs GainRel

                                                                                                                                      100 005 1 105 006 106 1 1

                                                                                                                                      100 005 2 110 006 112 2 2

                                                                                                                                      100 005 3 115 006 119 4 4

                                                                                                                                      100 005 4 121 006 126 5 5

                                                                                                                                      100 005 5 127 006 133 6 6

                                                                                                                                      100 005 6 134 006 141 7 7

                                                                                                                                      100 005 7 140 006 150 10 10

                                                                                                                                      100 005 8 147 006 159 12 12

                                                                                                                                      100 005 9 155 006 168 13 13

                                                                                                                                      100 005 10 162 006 179 17 17

                                                                                                                                      100 005 11 171 006 189 18 18

                                                                                                                                      100 005 12 179 006 201 22 22

                                                                                                                                      100 005 13 188 006 213 25 25

                                                                                                                                      100 005 14 197 006 226 29 29

                                                                                                                                      100 005 15 207 006 239 32 32

                                                                                                                                      100 005 16 218 006 254 36 36

                                                                                                                                      100 005 17 229 006 269 40 40

                                                                                                                                      100 005 18 240 006 285 45 45

                                                                                                                                      100 005 19 252 006 302 50 50

                                                                                                                                      100 005 20 265 006 320 55 55

                                                                                                                                      101

                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                      102

                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                      financiers de la table Produits

                                                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                      bull En ordre descendant de prix

                                                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                      bull Plusieurs actionshellip

                                                                                                                                      103

                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                      P prix

                                                                                                                                      p3 200

                                                                                                                                      p1 200

                                                                                                                                      p2 400

                                                                                                                                      p3 200

                                                                                                                                      p4 100

                                                                                                                                      p6 100

                                                                                                                                      p5 300

                                                                                                                                      p8 300

                                                                                                                                      p7 400

                                                                                                                                      p10 200

                                                                                                                                      p12 300

                                                                                                                                      p13 300

                                                                                                                                      104

                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                      ORDER BY 4 desc 8 123

                                                                                                                                      105

                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                      106

                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                      107

                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                      108

                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                      109

                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                      110

                                                                                                                                      GROUPING SETS

                                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                      HAVING tot-qty gt 100

                                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                      111

                                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                                      112

                                                                                                                                      ROLLUP

                                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                                      113

                                                                                                                                      ROLLUP

                                                                                                                                      114

                                                                                                                                      ROLLUP

                                                                                                                                      Et le CUBE

                                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                                      de certains nuls

                                                                                                                                      115

                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                      Wiley (publ)

                                                                                                                                      116

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                      117

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                      118

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      119

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      120

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      121

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      122

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                      123

                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                      Exeacutecution autonome

                                                                                                                                      124

                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                      hellip

                                                                                                                                      125

                                                                                                                                      Liste de Choix Multibase

                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                      126

                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                      148

                                                                                                                                      FIN

                                                                                                                                      149

                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                      • Slide 3
                                                                                                                                      • Synonymes
                                                                                                                                      • Noms dattributs
                                                                                                                                      • Slide 6
                                                                                                                                      • Slide 7
                                                                                                                                      • Slide 8
                                                                                                                                      • Insertion dans une Vue
                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                      • Expressions de valeur
                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                      • UNION et ORDER BY
                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                      • Preacutedicat TOP
                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                      • Clause BETWEEN
                                                                                                                                      • Limitations de NOT
                                                                                                                                      • ANY et ALL
                                                                                                                                      • Injection SQL
                                                                                                                                      • Injection SQL (2)
                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                      • XOR
                                                                                                                                      • IMP
                                                                                                                                      • Sous-requecirctes
                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                      • Valeurs nulles
                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                      • Fonction DDB
                                                                                                                                      • Fonction DDB (2)
                                                                                                                                      • Fonction PMT
                                                                                                                                      • Fonction PMT (2)
                                                                                                                                      • Placement agrave taux variable
                                                                                                                                      • GROUP BY
                                                                                                                                      • LIST Function
                                                                                                                                      • LIST Function (2)
                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                      • GROUP BY (2)
                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                      • T-GROUP BY
                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                      • Distribution
                                                                                                                                      • Reacutesultat
                                                                                                                                      • Distribution Cumulative
                                                                                                                                      • Reacutesultat (2)
                                                                                                                                      • Cateacutegorisation
                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                      • Tendance
                                                                                                                                      • Moyenne Glissante
                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                      • GROUPING SETS
                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                      • Slide 112
                                                                                                                                      • Slide 113
                                                                                                                                      • Slide 114
                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                      • FIN
                                                                                                                                      • Slide 149

                                                                                                                                        68

                                                                                                                                        Fonction laquo Payment raquo SQL Fonction laquo Valeur de Payement laquo VPM

                                                                                                                                        en QBE franccedilaisndash Donc dans le Geacuteneacuterateur drsquoExpressions

                                                                                                                                        Calcule les annuiteacutes drsquoun emprunt agrave dureacutee et taux donneacuteesndash Les annuiteacutes apparaissent comme

                                                                                                                                        nombres neacutegatifs

                                                                                                                                        Fonction PMT

                                                                                                                                        69

                                                                                                                                        Fonction PMT

                                                                                                                                        SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                                        Fonction PMT calcul dannuiteacute demprunt

                                                                                                                                        Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                                        preacutesentevaleur_payeacutee surprime

                                                                                                                                        -16049 005 20 200000 -320980 -120980

                                                                                                                                        70

                                                                                                                                        Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                        ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                        SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                        Et les nuls que log ne supporte pas

                                                                                                                                        Anneacutee relative

                                                                                                                                        Taux

                                                                                                                                        1 4

                                                                                                                                        2 4

                                                                                                                                        3 3

                                                                                                                                        4 5

                                                                                                                                        5 5

                                                                                                                                        Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                        71

                                                                                                                                        GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                        requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                        est eacutequivalente agrave

                                                                                                                                        SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                        WHERE XP = SPP) FROM SP

                                                                                                                                        Testez

                                                                                                                                        Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                        72

                                                                                                                                        LIST Function La requecircte

                                                                                                                                        SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                        Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                        Comme les tabulations croiseacutees

                                                                                                                                        ndash Mais en + simple

                                                                                                                                        LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                        ndash En mono attribut (2004)

                                                                                                                                        En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                        sous-formulaires

                                                                                                                                        73

                                                                                                                                        LIST Function

                                                                                                                                        Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                        for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                        74

                                                                                                                                        GROUP BY avec WHERE

                                                                                                                                        Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                        est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                        Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                        75

                                                                                                                                        GROUP BY

                                                                                                                                        Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                        nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                        Pourquoi

                                                                                                                                        76

                                                                                                                                        GROUP BY avec HAVING

                                                                                                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                        77

                                                                                                                                        T-GROUP BY Proposeacute pour SQL

                                                                                                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                        Le rocircle de -join par rapport agrave equi-join

                                                                                                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                        78

                                                                                                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                        FROM SP Vrai ou Faux

                                                                                                                                        79

                                                                                                                                        T-GROUP BY

                                                                                                                                        Reacutesultat

                                                                                                                                        part avg_qty_other_parts part_avg_qty

                                                                                                                                        p1 250 300

                                                                                                                                        p2 262 250

                                                                                                                                        p3 245 400

                                                                                                                                        p4 260 250

                                                                                                                                        p5 260 250

                                                                                                                                        p6 272 100

                                                                                                                                        80

                                                                                                                                        T-GROUP BY

                                                                                                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                        81

                                                                                                                                        Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                        s p qtyND-rank

                                                                                                                                        s4 p5 400 1

                                                                                                                                        s3 p2 400 1

                                                                                                                                        s1 p3 400 1

                                                                                                                                        s4 p4 300 4

                                                                                                                                        s2 p2 300 4

                                                                                                                                        s1 p1 300 4

                                                                                                                                        s4 p2 200 7

                                                                                                                                        s1 p4 200 7

                                                                                                                                        s1 p2 200 7

                                                                                                                                        s4 p1 200 7

                                                                                                                                        s1 p6 100 11

                                                                                                                                        s1 p5 100 11

                                                                                                                                        82

                                                                                                                                        Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                        s p qty ND-rank

                                                                                                                                        s4 p5 400 1

                                                                                                                                        s3 p2 400 1

                                                                                                                                        s1 p3 400 1

                                                                                                                                        s4 p4 300 4

                                                                                                                                        s2 p2 300 4

                                                                                                                                        s1 p1 300 4

                                                                                                                                        s4 p2 200 7

                                                                                                                                        s1 p4 200 7

                                                                                                                                        s1 p2 200 7

                                                                                                                                        s4 p1 200 7

                                                                                                                                        s1 p6 100 11

                                                                                                                                        s1 p5 100 11

                                                                                                                                        83

                                                                                                                                        Rangs Denses(Dense Ranking)

                                                                                                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                        s p qtyD-rank

                                                                                                                                        s1 p3 400 1

                                                                                                                                        s3 p2 400 1

                                                                                                                                        s4 p5 400 1

                                                                                                                                        s1 p1 300 2

                                                                                                                                        s2 p2 300 2

                                                                                                                                        s4 p4 300 2

                                                                                                                                        s1 p4 200 3

                                                                                                                                        s1 p2 200 3

                                                                                                                                        s4 p2 200 3

                                                                                                                                        s4 p1 200 3

                                                                                                                                        s1 p6 100 4

                                                                                                                                        s1 p5 100 4

                                                                                                                                        84

                                                                                                                                        Rangs DensesGraphique MsAccess

                                                                                                                                        s p qty D-rank

                                                                                                                                        s1 p3 400 1

                                                                                                                                        s3 p2 400 1

                                                                                                                                        s4 p5 400 1

                                                                                                                                        s1 p1 300 2

                                                                                                                                        s2 p2 300 2

                                                                                                                                        s4 p4 300 2

                                                                                                                                        s1 p4 200 3

                                                                                                                                        s1 p2 200 3

                                                                                                                                        s4 p2 200 3

                                                                                                                                        s4 p1 200 3

                                                                                                                                        s1 p6 100 4

                                                                                                                                        s1 p5 100 4

                                                                                                                                        85

                                                                                                                                        Distribution

                                                                                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                        86

                                                                                                                                        Reacutesultat

                                                                                                                                        s Distribution

                                                                                                                                        s1 0419

                                                                                                                                        s2 0097

                                                                                                                                        s3 0129

                                                                                                                                        s4 0355

                                                                                                                                        87

                                                                                                                                        Distribution Cumulative

                                                                                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                        FROM SP

                                                                                                                                        ORDER BY SP[s]

                                                                                                                                        88

                                                                                                                                        Reacutesultat

                                                                                                                                        sDistribution Cumuleacutee

                                                                                                                                        s1 0419

                                                                                                                                        s2 0516

                                                                                                                                        s3 0645

                                                                                                                                        s4 1

                                                                                                                                        89

                                                                                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                        90

                                                                                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                        FROM S

                                                                                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                        s1 Smith Paris good good

                                                                                                                                        s2 Jones 100 london good VGood

                                                                                                                                        s3 Blake 30 Paris good good

                                                                                                                                        s4 Clark 10 london OK OK

                                                                                                                                        s5 Adams 30 Athens good good

                                                                                                                                        bull Notez le traitement du null

                                                                                                                                        91

                                                                                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                                                                                        FROM P where weight gt 13

                                                                                                                                        union

                                                                                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                        UNION

                                                                                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                        ORDER BY warning DESC weight DESC

                                                                                                                                        pname weight Warning

                                                                                                                                        cam 19 Very Heavy

                                                                                                                                        cog 19 Very Heavy

                                                                                                                                        bolt 17 Very Heavy

                                                                                                                                        nut 14 Very Heavy

                                                                                                                                        screw 14 Very Heavy

                                                                                                                                        nut 14 Quite Heavy

                                                                                                                                        screw 14 Quite Heavy

                                                                                                                                        screw 12 Quite Heavy

                                                                                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                        92

                                                                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                        SP

                                                                                                                                        s p qtyQty1

                                                                                                                                        s1 p1 300 400

                                                                                                                                        s1 p2 200

                                                                                                                                        s1 p3 400 600

                                                                                                                                        s1 p4 200 300

                                                                                                                                        s1 p5 100

                                                                                                                                        s1 p6 100 200

                                                                                                                                        s2 p2 300 500

                                                                                                                                        s3 p2 400

                                                                                                                                        s4 p1 200 100

                                                                                                                                        s4 p2 200

                                                                                                                                        s4 p4 300

                                                                                                                                        s4 p5 400

                                                                                                                                        93

                                                                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                        SP

                                                                                                                                        s p qtyQty1

                                                                                                                                        s1 p1 300 400

                                                                                                                                        s1 p2 200

                                                                                                                                        s1 p3 400 600

                                                                                                                                        s1 p4 200 300

                                                                                                                                        s1 p5 100

                                                                                                                                        s1 p6 100 200

                                                                                                                                        s2 p2 300 500

                                                                                                                                        s3 p2 400

                                                                                                                                        s4 p1 200 100

                                                                                                                                        s4 p2 200

                                                                                                                                        s4 p4 300

                                                                                                                                        s4 p5 400

                                                                                                                                        qty for partpredicted or

                                                                                                                                        unknown Qty1

                                                                                                                                        100 p5

                                                                                                                                        100 predicted value 200

                                                                                                                                        200 p2

                                                                                                                                        200 predicted value 200

                                                                                                                                        300 p4

                                                                                                                                        300 predicted value 450

                                                                                                                                        400 p2

                                                                                                                                        400 p5

                                                                                                                                        400 predicted value 600

                                                                                                                                        94

                                                                                                                                        Tendance

                                                                                                                                        qty Qty1

                                                                                                                                        100 200

                                                                                                                                        200 300

                                                                                                                                        300 400

                                                                                                                                        400 600

                                                                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                        Graph 3D avec Qty en abscisses

                                                                                                                                        95

                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                        30102008 120 27102008 4

                                                                                                                                        25102008 131 22102008 4

                                                                                                                                        23102008 127 20102008 4

                                                                                                                                        17102008 269 14102008 4

                                                                                                                                        15102008 60 12102008 4

                                                                                                                                        11102008 295 08102008 4

                                                                                                                                        09102008 340 06102008 4

                                                                                                                                        08102008 324 05102008 4

                                                                                                                                        06102008 315 03102008 4

                                                                                                                                        96

                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                        Graphique avec une info-bulle

                                                                                                                                        97

                                                                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                        glissantes

                                                                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                                                                        bull MAVG

                                                                                                                                        bull MSUM

                                                                                                                                        bull MDIFF

                                                                                                                                        bull Voir Teradata + loin

                                                                                                                                        98

                                                                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                        99

                                                                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                        100

                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                        capital taux nval apregraves n ans

                                                                                                                                        taux1val1 apregraves n ans

                                                                                                                                        GainAbs GainRel

                                                                                                                                        100 005 1 105 006 106 1 1

                                                                                                                                        100 005 2 110 006 112 2 2

                                                                                                                                        100 005 3 115 006 119 4 4

                                                                                                                                        100 005 4 121 006 126 5 5

                                                                                                                                        100 005 5 127 006 133 6 6

                                                                                                                                        100 005 6 134 006 141 7 7

                                                                                                                                        100 005 7 140 006 150 10 10

                                                                                                                                        100 005 8 147 006 159 12 12

                                                                                                                                        100 005 9 155 006 168 13 13

                                                                                                                                        100 005 10 162 006 179 17 17

                                                                                                                                        100 005 11 171 006 189 18 18

                                                                                                                                        100 005 12 179 006 201 22 22

                                                                                                                                        100 005 13 188 006 213 25 25

                                                                                                                                        100 005 14 197 006 226 29 29

                                                                                                                                        100 005 15 207 006 239 32 32

                                                                                                                                        100 005 16 218 006 254 36 36

                                                                                                                                        100 005 17 229 006 269 40 40

                                                                                                                                        100 005 18 240 006 285 45 45

                                                                                                                                        100 005 19 252 006 302 50 50

                                                                                                                                        100 005 20 265 006 320 55 55

                                                                                                                                        101

                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                        102

                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                        financiers de la table Produits

                                                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                        bull En ordre descendant de prix

                                                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                        bull Plusieurs actionshellip

                                                                                                                                        103

                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                        P prix

                                                                                                                                        p3 200

                                                                                                                                        p1 200

                                                                                                                                        p2 400

                                                                                                                                        p3 200

                                                                                                                                        p4 100

                                                                                                                                        p6 100

                                                                                                                                        p5 300

                                                                                                                                        p8 300

                                                                                                                                        p7 400

                                                                                                                                        p10 200

                                                                                                                                        p12 300

                                                                                                                                        p13 300

                                                                                                                                        104

                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                        ORDER BY 4 desc 8 123

                                                                                                                                        105

                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                        106

                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                        107

                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                        108

                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                        109

                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                        110

                                                                                                                                        GROUPING SETS

                                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                        HAVING tot-qty gt 100

                                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                        111

                                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                                        112

                                                                                                                                        ROLLUP

                                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                                        113

                                                                                                                                        ROLLUP

                                                                                                                                        114

                                                                                                                                        ROLLUP

                                                                                                                                        Et le CUBE

                                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                                        de certains nuls

                                                                                                                                        115

                                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                        Wiley (publ)

                                                                                                                                        116

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                        117

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                        118

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        119

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        120

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        121

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        122

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                        123

                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                        Exeacutecution autonome

                                                                                                                                        124

                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                        hellip

                                                                                                                                        125

                                                                                                                                        Liste de Choix Multibase

                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                        126

                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                        148

                                                                                                                                        FIN

                                                                                                                                        149

                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                        • Slide 3
                                                                                                                                        • Synonymes
                                                                                                                                        • Noms dattributs
                                                                                                                                        • Slide 6
                                                                                                                                        • Slide 7
                                                                                                                                        • Slide 8
                                                                                                                                        • Insertion dans une Vue
                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                        • Expressions de valeur
                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                        • UNION et ORDER BY
                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                        • Preacutedicat TOP
                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                        • Clause BETWEEN
                                                                                                                                        • Limitations de NOT
                                                                                                                                        • ANY et ALL
                                                                                                                                        • Injection SQL
                                                                                                                                        • Injection SQL (2)
                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                        • XOR
                                                                                                                                        • IMP
                                                                                                                                        • Sous-requecirctes
                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                        • Valeurs nulles
                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                        • Fonction DDB
                                                                                                                                        • Fonction DDB (2)
                                                                                                                                        • Fonction PMT
                                                                                                                                        • Fonction PMT (2)
                                                                                                                                        • Placement agrave taux variable
                                                                                                                                        • GROUP BY
                                                                                                                                        • LIST Function
                                                                                                                                        • LIST Function (2)
                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                        • GROUP BY (2)
                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                        • T-GROUP BY
                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                        • Distribution
                                                                                                                                        • Reacutesultat
                                                                                                                                        • Distribution Cumulative
                                                                                                                                        • Reacutesultat (2)
                                                                                                                                        • Cateacutegorisation
                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                        • Tendance
                                                                                                                                        • Moyenne Glissante
                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                        • GROUPING SETS
                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                        • Slide 112
                                                                                                                                        • Slide 113
                                                                                                                                        • Slide 114
                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                        • FIN
                                                                                                                                        • Slide 149

                                                                                                                                          69

                                                                                                                                          Fonction PMT

                                                                                                                                          SELECT int(Pmt([rate][nper][pv])) AS Annuiteacutee rate as taux_annuel nper as nbre_anneacutees pv as [valeur preacutesente] int(Annuiteacuteenper) as valeur_payeacutee valeur_payeacutee + pv as surprime

                                                                                                                                          Fonction PMT calcul dannuiteacute demprunt

                                                                                                                                          Annuiteacutee taux_annuel nbre_anneacuteesvaleur

                                                                                                                                          preacutesentevaleur_payeacutee surprime

                                                                                                                                          -16049 005 20 200000 -320980 -120980

                                                                                                                                          70

                                                                                                                                          Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                          ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                          SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                          Et les nuls que log ne supporte pas

                                                                                                                                          Anneacutee relative

                                                                                                                                          Taux

                                                                                                                                          1 4

                                                                                                                                          2 4

                                                                                                                                          3 3

                                                                                                                                          4 5

                                                                                                                                          5 5

                                                                                                                                          Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                          71

                                                                                                                                          GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                          requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                          est eacutequivalente agrave

                                                                                                                                          SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                          WHERE XP = SPP) FROM SP

                                                                                                                                          Testez

                                                                                                                                          Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                          72

                                                                                                                                          LIST Function La requecircte

                                                                                                                                          SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                          Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                          Comme les tabulations croiseacutees

                                                                                                                                          ndash Mais en + simple

                                                                                                                                          LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                          ndash En mono attribut (2004)

                                                                                                                                          En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                          sous-formulaires

                                                                                                                                          73

                                                                                                                                          LIST Function

                                                                                                                                          Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                          for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                          74

                                                                                                                                          GROUP BY avec WHERE

                                                                                                                                          Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                          est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                          Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                          75

                                                                                                                                          GROUP BY

                                                                                                                                          Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                          nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                          Pourquoi

                                                                                                                                          76

                                                                                                                                          GROUP BY avec HAVING

                                                                                                                                          La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                          est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                          Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                          77

                                                                                                                                          T-GROUP BY Proposeacute pour SQL

                                                                                                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                          Le rocircle de -join par rapport agrave equi-join

                                                                                                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                          78

                                                                                                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                          FROM SP Vrai ou Faux

                                                                                                                                          79

                                                                                                                                          T-GROUP BY

                                                                                                                                          Reacutesultat

                                                                                                                                          part avg_qty_other_parts part_avg_qty

                                                                                                                                          p1 250 300

                                                                                                                                          p2 262 250

                                                                                                                                          p3 245 400

                                                                                                                                          p4 260 250

                                                                                                                                          p5 260 250

                                                                                                                                          p6 272 100

                                                                                                                                          80

                                                                                                                                          T-GROUP BY

                                                                                                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                          81

                                                                                                                                          Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                          s p qtyND-rank

                                                                                                                                          s4 p5 400 1

                                                                                                                                          s3 p2 400 1

                                                                                                                                          s1 p3 400 1

                                                                                                                                          s4 p4 300 4

                                                                                                                                          s2 p2 300 4

                                                                                                                                          s1 p1 300 4

                                                                                                                                          s4 p2 200 7

                                                                                                                                          s1 p4 200 7

                                                                                                                                          s1 p2 200 7

                                                                                                                                          s4 p1 200 7

                                                                                                                                          s1 p6 100 11

                                                                                                                                          s1 p5 100 11

                                                                                                                                          82

                                                                                                                                          Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                          s p qty ND-rank

                                                                                                                                          s4 p5 400 1

                                                                                                                                          s3 p2 400 1

                                                                                                                                          s1 p3 400 1

                                                                                                                                          s4 p4 300 4

                                                                                                                                          s2 p2 300 4

                                                                                                                                          s1 p1 300 4

                                                                                                                                          s4 p2 200 7

                                                                                                                                          s1 p4 200 7

                                                                                                                                          s1 p2 200 7

                                                                                                                                          s4 p1 200 7

                                                                                                                                          s1 p6 100 11

                                                                                                                                          s1 p5 100 11

                                                                                                                                          83

                                                                                                                                          Rangs Denses(Dense Ranking)

                                                                                                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                          s p qtyD-rank

                                                                                                                                          s1 p3 400 1

                                                                                                                                          s3 p2 400 1

                                                                                                                                          s4 p5 400 1

                                                                                                                                          s1 p1 300 2

                                                                                                                                          s2 p2 300 2

                                                                                                                                          s4 p4 300 2

                                                                                                                                          s1 p4 200 3

                                                                                                                                          s1 p2 200 3

                                                                                                                                          s4 p2 200 3

                                                                                                                                          s4 p1 200 3

                                                                                                                                          s1 p6 100 4

                                                                                                                                          s1 p5 100 4

                                                                                                                                          84

                                                                                                                                          Rangs DensesGraphique MsAccess

                                                                                                                                          s p qty D-rank

                                                                                                                                          s1 p3 400 1

                                                                                                                                          s3 p2 400 1

                                                                                                                                          s4 p5 400 1

                                                                                                                                          s1 p1 300 2

                                                                                                                                          s2 p2 300 2

                                                                                                                                          s4 p4 300 2

                                                                                                                                          s1 p4 200 3

                                                                                                                                          s1 p2 200 3

                                                                                                                                          s4 p2 200 3

                                                                                                                                          s4 p1 200 3

                                                                                                                                          s1 p6 100 4

                                                                                                                                          s1 p5 100 4

                                                                                                                                          85

                                                                                                                                          Distribution

                                                                                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                          86

                                                                                                                                          Reacutesultat

                                                                                                                                          s Distribution

                                                                                                                                          s1 0419

                                                                                                                                          s2 0097

                                                                                                                                          s3 0129

                                                                                                                                          s4 0355

                                                                                                                                          87

                                                                                                                                          Distribution Cumulative

                                                                                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                          FROM SP

                                                                                                                                          ORDER BY SP[s]

                                                                                                                                          88

                                                                                                                                          Reacutesultat

                                                                                                                                          sDistribution Cumuleacutee

                                                                                                                                          s1 0419

                                                                                                                                          s2 0516

                                                                                                                                          s3 0645

                                                                                                                                          s4 1

                                                                                                                                          89

                                                                                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                          90

                                                                                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                          FROM S

                                                                                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                          s1 Smith Paris good good

                                                                                                                                          s2 Jones 100 london good VGood

                                                                                                                                          s3 Blake 30 Paris good good

                                                                                                                                          s4 Clark 10 london OK OK

                                                                                                                                          s5 Adams 30 Athens good good

                                                                                                                                          bull Notez le traitement du null

                                                                                                                                          91

                                                                                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                                                                                          FROM P where weight gt 13

                                                                                                                                          union

                                                                                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                          UNION

                                                                                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                          ORDER BY warning DESC weight DESC

                                                                                                                                          pname weight Warning

                                                                                                                                          cam 19 Very Heavy

                                                                                                                                          cog 19 Very Heavy

                                                                                                                                          bolt 17 Very Heavy

                                                                                                                                          nut 14 Very Heavy

                                                                                                                                          screw 14 Very Heavy

                                                                                                                                          nut 14 Quite Heavy

                                                                                                                                          screw 14 Quite Heavy

                                                                                                                                          screw 12 Quite Heavy

                                                                                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                          92

                                                                                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                          On considegravere AVG(Qty1) pour Qty

                                                                                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                          SP

                                                                                                                                          s p qtyQty1

                                                                                                                                          s1 p1 300 400

                                                                                                                                          s1 p2 200

                                                                                                                                          s1 p3 400 600

                                                                                                                                          s1 p4 200 300

                                                                                                                                          s1 p5 100

                                                                                                                                          s1 p6 100 200

                                                                                                                                          s2 p2 300 500

                                                                                                                                          s3 p2 400

                                                                                                                                          s4 p1 200 100

                                                                                                                                          s4 p2 200

                                                                                                                                          s4 p4 300

                                                                                                                                          s4 p5 400

                                                                                                                                          93

                                                                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                          SP

                                                                                                                                          s p qtyQty1

                                                                                                                                          s1 p1 300 400

                                                                                                                                          s1 p2 200

                                                                                                                                          s1 p3 400 600

                                                                                                                                          s1 p4 200 300

                                                                                                                                          s1 p5 100

                                                                                                                                          s1 p6 100 200

                                                                                                                                          s2 p2 300 500

                                                                                                                                          s3 p2 400

                                                                                                                                          s4 p1 200 100

                                                                                                                                          s4 p2 200

                                                                                                                                          s4 p4 300

                                                                                                                                          s4 p5 400

                                                                                                                                          qty for partpredicted or

                                                                                                                                          unknown Qty1

                                                                                                                                          100 p5

                                                                                                                                          100 predicted value 200

                                                                                                                                          200 p2

                                                                                                                                          200 predicted value 200

                                                                                                                                          300 p4

                                                                                                                                          300 predicted value 450

                                                                                                                                          400 p2

                                                                                                                                          400 p5

                                                                                                                                          400 predicted value 600

                                                                                                                                          94

                                                                                                                                          Tendance

                                                                                                                                          qty Qty1

                                                                                                                                          100 200

                                                                                                                                          200 300

                                                                                                                                          300 400

                                                                                                                                          400 600

                                                                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                          Graph 3D avec Qty en abscisses

                                                                                                                                          95

                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                          30102008 120 27102008 4

                                                                                                                                          25102008 131 22102008 4

                                                                                                                                          23102008 127 20102008 4

                                                                                                                                          17102008 269 14102008 4

                                                                                                                                          15102008 60 12102008 4

                                                                                                                                          11102008 295 08102008 4

                                                                                                                                          09102008 340 06102008 4

                                                                                                                                          08102008 324 05102008 4

                                                                                                                                          06102008 315 03102008 4

                                                                                                                                          96

                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                          Graphique avec une info-bulle

                                                                                                                                          97

                                                                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                          glissantes

                                                                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                                                                          bull MAVG

                                                                                                                                          bull MSUM

                                                                                                                                          bull MDIFF

                                                                                                                                          bull Voir Teradata + loin

                                                                                                                                          98

                                                                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                          99

                                                                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                          100

                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                          capital taux nval apregraves n ans

                                                                                                                                          taux1val1 apregraves n ans

                                                                                                                                          GainAbs GainRel

                                                                                                                                          100 005 1 105 006 106 1 1

                                                                                                                                          100 005 2 110 006 112 2 2

                                                                                                                                          100 005 3 115 006 119 4 4

                                                                                                                                          100 005 4 121 006 126 5 5

                                                                                                                                          100 005 5 127 006 133 6 6

                                                                                                                                          100 005 6 134 006 141 7 7

                                                                                                                                          100 005 7 140 006 150 10 10

                                                                                                                                          100 005 8 147 006 159 12 12

                                                                                                                                          100 005 9 155 006 168 13 13

                                                                                                                                          100 005 10 162 006 179 17 17

                                                                                                                                          100 005 11 171 006 189 18 18

                                                                                                                                          100 005 12 179 006 201 22 22

                                                                                                                                          100 005 13 188 006 213 25 25

                                                                                                                                          100 005 14 197 006 226 29 29

                                                                                                                                          100 005 15 207 006 239 32 32

                                                                                                                                          100 005 16 218 006 254 36 36

                                                                                                                                          100 005 17 229 006 269 40 40

                                                                                                                                          100 005 18 240 006 285 45 45

                                                                                                                                          100 005 19 252 006 302 50 50

                                                                                                                                          100 005 20 265 006 320 55 55

                                                                                                                                          101

                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                          102

                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                          financiers de la table Produits

                                                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                          bull En ordre descendant de prix

                                                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                          bull Plusieurs actionshellip

                                                                                                                                          103

                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                          P prix

                                                                                                                                          p3 200

                                                                                                                                          p1 200

                                                                                                                                          p2 400

                                                                                                                                          p3 200

                                                                                                                                          p4 100

                                                                                                                                          p6 100

                                                                                                                                          p5 300

                                                                                                                                          p8 300

                                                                                                                                          p7 400

                                                                                                                                          p10 200

                                                                                                                                          p12 300

                                                                                                                                          p13 300

                                                                                                                                          104

                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                          ORDER BY 4 desc 8 123

                                                                                                                                          105

                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                          106

                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                          107

                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                          108

                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                          109

                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                          110

                                                                                                                                          GROUPING SETS

                                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                          HAVING tot-qty gt 100

                                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                          111

                                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                                          112

                                                                                                                                          ROLLUP

                                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                                          113

                                                                                                                                          ROLLUP

                                                                                                                                          114

                                                                                                                                          ROLLUP

                                                                                                                                          Et le CUBE

                                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                                          de certains nuls

                                                                                                                                          115

                                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                          Wiley (publ)

                                                                                                                                          116

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                          117

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                          118

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          119

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          120

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          121

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          122

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                          123

                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                          Exeacutecution autonome

                                                                                                                                          124

                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                          hellip

                                                                                                                                          125

                                                                                                                                          Liste de Choix Multibase

                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                          126

                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                          148

                                                                                                                                          FIN

                                                                                                                                          149

                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                          • Slide 3
                                                                                                                                          • Synonymes
                                                                                                                                          • Noms dattributs
                                                                                                                                          • Slide 6
                                                                                                                                          • Slide 7
                                                                                                                                          • Slide 8
                                                                                                                                          • Insertion dans une Vue
                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                          • Expressions de valeur
                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                          • UNION et ORDER BY
                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                          • Preacutedicat TOP
                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                          • Clause BETWEEN
                                                                                                                                          • Limitations de NOT
                                                                                                                                          • ANY et ALL
                                                                                                                                          • Injection SQL
                                                                                                                                          • Injection SQL (2)
                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                          • XOR
                                                                                                                                          • IMP
                                                                                                                                          • Sous-requecirctes
                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                          • Valeurs nulles
                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                          • Fonction DDB
                                                                                                                                          • Fonction DDB (2)
                                                                                                                                          • Fonction PMT
                                                                                                                                          • Fonction PMT (2)
                                                                                                                                          • Placement agrave taux variable
                                                                                                                                          • GROUP BY
                                                                                                                                          • LIST Function
                                                                                                                                          • LIST Function (2)
                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                          • GROUP BY (2)
                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                          • T-GROUP BY
                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                          • Distribution
                                                                                                                                          • Reacutesultat
                                                                                                                                          • Distribution Cumulative
                                                                                                                                          • Reacutesultat (2)
                                                                                                                                          • Cateacutegorisation
                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                          • Tendance
                                                                                                                                          • Moyenne Glissante
                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                          • GROUPING SETS
                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                          • Slide 112
                                                                                                                                          • Slide 113
                                                                                                                                          • Slide 114
                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                          • FIN
                                                                                                                                          • Slide 149

                                                                                                                                            70

                                                                                                                                            Placement agrave taux variable Somme et Fin sont les paramegravetres

                                                                                                                                            ndash Expression indirecte de lrsquoagreacutegat PRODUCT

                                                                                                                                            SELECT sommeexp(sum(log(1+taux100)))FROM [placement agrave taux variable]WHERE [anneacutee relative] between 1 and fin

                                                                                                                                            Et les nuls que log ne supporte pas

                                                                                                                                            Anneacutee relative

                                                                                                                                            Taux

                                                                                                                                            1 4

                                                                                                                                            2 4

                                                                                                                                            3 3

                                                                                                                                            4 5

                                                                                                                                            5 5

                                                                                                                                            Voir + dans le livre laquo SQL Design Patterns raquo

                                                                                                                                            71

                                                                                                                                            GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                            requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                            est eacutequivalente agrave

                                                                                                                                            SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                            WHERE XP = SPP) FROM SP

                                                                                                                                            Testez

                                                                                                                                            Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                            72

                                                                                                                                            LIST Function La requecircte

                                                                                                                                            SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                            Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                            Comme les tabulations croiseacutees

                                                                                                                                            ndash Mais en + simple

                                                                                                                                            LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                            ndash En mono attribut (2004)

                                                                                                                                            En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                            sous-formulaires

                                                                                                                                            73

                                                                                                                                            LIST Function

                                                                                                                                            Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                            for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                            74

                                                                                                                                            GROUP BY avec WHERE

                                                                                                                                            Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                            est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                            Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                            75

                                                                                                                                            GROUP BY

                                                                                                                                            Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                            nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                            Pourquoi

                                                                                                                                            76

                                                                                                                                            GROUP BY avec HAVING

                                                                                                                                            La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                            est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                            Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                            77

                                                                                                                                            T-GROUP BY Proposeacute pour SQL

                                                                                                                                            Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                            Le rocircle de -join par rapport agrave equi-join

                                                                                                                                            Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                            INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                            T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                            donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                            78

                                                                                                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                            FROM SP Vrai ou Faux

                                                                                                                                            79

                                                                                                                                            T-GROUP BY

                                                                                                                                            Reacutesultat

                                                                                                                                            part avg_qty_other_parts part_avg_qty

                                                                                                                                            p1 250 300

                                                                                                                                            p2 262 250

                                                                                                                                            p3 245 400

                                                                                                                                            p4 260 250

                                                                                                                                            p5 260 250

                                                                                                                                            p6 272 100

                                                                                                                                            80

                                                                                                                                            T-GROUP BY

                                                                                                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                            81

                                                                                                                                            Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                            s p qtyND-rank

                                                                                                                                            s4 p5 400 1

                                                                                                                                            s3 p2 400 1

                                                                                                                                            s1 p3 400 1

                                                                                                                                            s4 p4 300 4

                                                                                                                                            s2 p2 300 4

                                                                                                                                            s1 p1 300 4

                                                                                                                                            s4 p2 200 7

                                                                                                                                            s1 p4 200 7

                                                                                                                                            s1 p2 200 7

                                                                                                                                            s4 p1 200 7

                                                                                                                                            s1 p6 100 11

                                                                                                                                            s1 p5 100 11

                                                                                                                                            82

                                                                                                                                            Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                            s p qty ND-rank

                                                                                                                                            s4 p5 400 1

                                                                                                                                            s3 p2 400 1

                                                                                                                                            s1 p3 400 1

                                                                                                                                            s4 p4 300 4

                                                                                                                                            s2 p2 300 4

                                                                                                                                            s1 p1 300 4

                                                                                                                                            s4 p2 200 7

                                                                                                                                            s1 p4 200 7

                                                                                                                                            s1 p2 200 7

                                                                                                                                            s4 p1 200 7

                                                                                                                                            s1 p6 100 11

                                                                                                                                            s1 p5 100 11

                                                                                                                                            83

                                                                                                                                            Rangs Denses(Dense Ranking)

                                                                                                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                            s p qtyD-rank

                                                                                                                                            s1 p3 400 1

                                                                                                                                            s3 p2 400 1

                                                                                                                                            s4 p5 400 1

                                                                                                                                            s1 p1 300 2

                                                                                                                                            s2 p2 300 2

                                                                                                                                            s4 p4 300 2

                                                                                                                                            s1 p4 200 3

                                                                                                                                            s1 p2 200 3

                                                                                                                                            s4 p2 200 3

                                                                                                                                            s4 p1 200 3

                                                                                                                                            s1 p6 100 4

                                                                                                                                            s1 p5 100 4

                                                                                                                                            84

                                                                                                                                            Rangs DensesGraphique MsAccess

                                                                                                                                            s p qty D-rank

                                                                                                                                            s1 p3 400 1

                                                                                                                                            s3 p2 400 1

                                                                                                                                            s4 p5 400 1

                                                                                                                                            s1 p1 300 2

                                                                                                                                            s2 p2 300 2

                                                                                                                                            s4 p4 300 2

                                                                                                                                            s1 p4 200 3

                                                                                                                                            s1 p2 200 3

                                                                                                                                            s4 p2 200 3

                                                                                                                                            s4 p1 200 3

                                                                                                                                            s1 p6 100 4

                                                                                                                                            s1 p5 100 4

                                                                                                                                            85

                                                                                                                                            Distribution

                                                                                                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                            86

                                                                                                                                            Reacutesultat

                                                                                                                                            s Distribution

                                                                                                                                            s1 0419

                                                                                                                                            s2 0097

                                                                                                                                            s3 0129

                                                                                                                                            s4 0355

                                                                                                                                            87

                                                                                                                                            Distribution Cumulative

                                                                                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                            FROM SP

                                                                                                                                            ORDER BY SP[s]

                                                                                                                                            88

                                                                                                                                            Reacutesultat

                                                                                                                                            sDistribution Cumuleacutee

                                                                                                                                            s1 0419

                                                                                                                                            s2 0516

                                                                                                                                            s3 0645

                                                                                                                                            s4 1

                                                                                                                                            89

                                                                                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                            90

                                                                                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                            FROM S

                                                                                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                            s1 Smith Paris good good

                                                                                                                                            s2 Jones 100 london good VGood

                                                                                                                                            s3 Blake 30 Paris good good

                                                                                                                                            s4 Clark 10 london OK OK

                                                                                                                                            s5 Adams 30 Athens good good

                                                                                                                                            bull Notez le traitement du null

                                                                                                                                            91

                                                                                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                                                                                            FROM P where weight gt 13

                                                                                                                                            union

                                                                                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                            UNION

                                                                                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                            ORDER BY warning DESC weight DESC

                                                                                                                                            pname weight Warning

                                                                                                                                            cam 19 Very Heavy

                                                                                                                                            cog 19 Very Heavy

                                                                                                                                            bolt 17 Very Heavy

                                                                                                                                            nut 14 Very Heavy

                                                                                                                                            screw 14 Very Heavy

                                                                                                                                            nut 14 Quite Heavy

                                                                                                                                            screw 14 Quite Heavy

                                                                                                                                            screw 12 Quite Heavy

                                                                                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                            92

                                                                                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                            On considegravere AVG(Qty1) pour Qty

                                                                                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                            SP

                                                                                                                                            s p qtyQty1

                                                                                                                                            s1 p1 300 400

                                                                                                                                            s1 p2 200

                                                                                                                                            s1 p3 400 600

                                                                                                                                            s1 p4 200 300

                                                                                                                                            s1 p5 100

                                                                                                                                            s1 p6 100 200

                                                                                                                                            s2 p2 300 500

                                                                                                                                            s3 p2 400

                                                                                                                                            s4 p1 200 100

                                                                                                                                            s4 p2 200

                                                                                                                                            s4 p4 300

                                                                                                                                            s4 p5 400

                                                                                                                                            93

                                                                                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                            SP

                                                                                                                                            s p qtyQty1

                                                                                                                                            s1 p1 300 400

                                                                                                                                            s1 p2 200

                                                                                                                                            s1 p3 400 600

                                                                                                                                            s1 p4 200 300

                                                                                                                                            s1 p5 100

                                                                                                                                            s1 p6 100 200

                                                                                                                                            s2 p2 300 500

                                                                                                                                            s3 p2 400

                                                                                                                                            s4 p1 200 100

                                                                                                                                            s4 p2 200

                                                                                                                                            s4 p4 300

                                                                                                                                            s4 p5 400

                                                                                                                                            qty for partpredicted or

                                                                                                                                            unknown Qty1

                                                                                                                                            100 p5

                                                                                                                                            100 predicted value 200

                                                                                                                                            200 p2

                                                                                                                                            200 predicted value 200

                                                                                                                                            300 p4

                                                                                                                                            300 predicted value 450

                                                                                                                                            400 p2

                                                                                                                                            400 p5

                                                                                                                                            400 predicted value 600

                                                                                                                                            94

                                                                                                                                            Tendance

                                                                                                                                            qty Qty1

                                                                                                                                            100 200

                                                                                                                                            200 300

                                                                                                                                            300 400

                                                                                                                                            400 600

                                                                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                            Graph 3D avec Qty en abscisses

                                                                                                                                            95

                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                            30102008 120 27102008 4

                                                                                                                                            25102008 131 22102008 4

                                                                                                                                            23102008 127 20102008 4

                                                                                                                                            17102008 269 14102008 4

                                                                                                                                            15102008 60 12102008 4

                                                                                                                                            11102008 295 08102008 4

                                                                                                                                            09102008 340 06102008 4

                                                                                                                                            08102008 324 05102008 4

                                                                                                                                            06102008 315 03102008 4

                                                                                                                                            96

                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                            Graphique avec une info-bulle

                                                                                                                                            97

                                                                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                            glissantes

                                                                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                                                                            bull MAVG

                                                                                                                                            bull MSUM

                                                                                                                                            bull MDIFF

                                                                                                                                            bull Voir Teradata + loin

                                                                                                                                            98

                                                                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                            99

                                                                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                            100

                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                            capital taux nval apregraves n ans

                                                                                                                                            taux1val1 apregraves n ans

                                                                                                                                            GainAbs GainRel

                                                                                                                                            100 005 1 105 006 106 1 1

                                                                                                                                            100 005 2 110 006 112 2 2

                                                                                                                                            100 005 3 115 006 119 4 4

                                                                                                                                            100 005 4 121 006 126 5 5

                                                                                                                                            100 005 5 127 006 133 6 6

                                                                                                                                            100 005 6 134 006 141 7 7

                                                                                                                                            100 005 7 140 006 150 10 10

                                                                                                                                            100 005 8 147 006 159 12 12

                                                                                                                                            100 005 9 155 006 168 13 13

                                                                                                                                            100 005 10 162 006 179 17 17

                                                                                                                                            100 005 11 171 006 189 18 18

                                                                                                                                            100 005 12 179 006 201 22 22

                                                                                                                                            100 005 13 188 006 213 25 25

                                                                                                                                            100 005 14 197 006 226 29 29

                                                                                                                                            100 005 15 207 006 239 32 32

                                                                                                                                            100 005 16 218 006 254 36 36

                                                                                                                                            100 005 17 229 006 269 40 40

                                                                                                                                            100 005 18 240 006 285 45 45

                                                                                                                                            100 005 19 252 006 302 50 50

                                                                                                                                            100 005 20 265 006 320 55 55

                                                                                                                                            101

                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                            102

                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                            financiers de la table Produits

                                                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                            bull En ordre descendant de prix

                                                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                            bull Plusieurs actionshellip

                                                                                                                                            103

                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                            P prix

                                                                                                                                            p3 200

                                                                                                                                            p1 200

                                                                                                                                            p2 400

                                                                                                                                            p3 200

                                                                                                                                            p4 100

                                                                                                                                            p6 100

                                                                                                                                            p5 300

                                                                                                                                            p8 300

                                                                                                                                            p7 400

                                                                                                                                            p10 200

                                                                                                                                            p12 300

                                                                                                                                            p13 300

                                                                                                                                            104

                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                            ORDER BY 4 desc 8 123

                                                                                                                                            105

                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                            106

                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                            107

                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                            108

                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                            109

                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                            110

                                                                                                                                            GROUPING SETS

                                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                            HAVING tot-qty gt 100

                                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                            111

                                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                                            112

                                                                                                                                            ROLLUP

                                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                                            113

                                                                                                                                            ROLLUP

                                                                                                                                            114

                                                                                                                                            ROLLUP

                                                                                                                                            Et le CUBE

                                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                                            de certains nuls

                                                                                                                                            115

                                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                            Wiley (publ)

                                                                                                                                            116

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                            117

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                            118

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            119

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            120

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            121

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            122

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                            123

                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                            Exeacutecution autonome

                                                                                                                                            124

                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                            hellip

                                                                                                                                            125

                                                                                                                                            Liste de Choix Multibase

                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                            126

                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                            148

                                                                                                                                            FIN

                                                                                                                                            149

                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                            • Slide 3
                                                                                                                                            • Synonymes
                                                                                                                                            • Noms dattributs
                                                                                                                                            • Slide 6
                                                                                                                                            • Slide 7
                                                                                                                                            • Slide 8
                                                                                                                                            • Insertion dans une Vue
                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                            • Expressions de valeur
                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                            • UNION et ORDER BY
                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                            • Preacutedicat TOP
                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                            • Clause BETWEEN
                                                                                                                                            • Limitations de NOT
                                                                                                                                            • ANY et ALL
                                                                                                                                            • Injection SQL
                                                                                                                                            • Injection SQL (2)
                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                            • XOR
                                                                                                                                            • IMP
                                                                                                                                            • Sous-requecirctes
                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                            • Valeurs nulles
                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                            • Fonction DDB
                                                                                                                                            • Fonction DDB (2)
                                                                                                                                            • Fonction PMT
                                                                                                                                            • Fonction PMT (2)
                                                                                                                                            • Placement agrave taux variable
                                                                                                                                            • GROUP BY
                                                                                                                                            • LIST Function
                                                                                                                                            • LIST Function (2)
                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                            • GROUP BY (2)
                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                            • T-GROUP BY
                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                            • Distribution
                                                                                                                                            • Reacutesultat
                                                                                                                                            • Distribution Cumulative
                                                                                                                                            • Reacutesultat (2)
                                                                                                                                            • Cateacutegorisation
                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                            • Tendance
                                                                                                                                            • Moyenne Glissante
                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                            • GROUPING SETS
                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                            • Slide 112
                                                                                                                                            • Slide 113
                                                                                                                                            • Slide 114
                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                            • FIN
                                                                                                                                            • Slide 149

                                                                                                                                              71

                                                                                                                                              GROUP BY Est une clause redondante avec le SELECT agrave sous-

                                                                                                                                              requecirctes La requecircteSELECT P MAX(QTY) FROM SP GROUP BY P

                                                                                                                                              est eacutequivalente agrave

                                                                                                                                              SELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X

                                                                                                                                              WHERE XP = SPP) FROM SP

                                                                                                                                              Testez

                                                                                                                                              Ca srsquoapplique agrave toute fonction agreacutegat Que faire avec les clauses WHERE et HAVING

                                                                                                                                              72

                                                                                                                                              LIST Function La requecircte

                                                                                                                                              SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                              Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                              Comme les tabulations croiseacutees

                                                                                                                                              ndash Mais en + simple

                                                                                                                                              LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                              ndash En mono attribut (2004)

                                                                                                                                              En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                              sous-formulaires

                                                                                                                                              73

                                                                                                                                              LIST Function

                                                                                                                                              Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                              for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                              74

                                                                                                                                              GROUP BY avec WHERE

                                                                                                                                              Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                              est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                              Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                              75

                                                                                                                                              GROUP BY

                                                                                                                                              Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                              nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                              Pourquoi

                                                                                                                                              76

                                                                                                                                              GROUP BY avec HAVING

                                                                                                                                              La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                              est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                              Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                              77

                                                                                                                                              T-GROUP BY Proposeacute pour SQL

                                                                                                                                              Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                              Le rocircle de -join par rapport agrave equi-join

                                                                                                                                              Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                              INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                              T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                              donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                              78

                                                                                                                                              T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                              lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                              (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                              FROM SP Vrai ou Faux

                                                                                                                                              79

                                                                                                                                              T-GROUP BY

                                                                                                                                              Reacutesultat

                                                                                                                                              part avg_qty_other_parts part_avg_qty

                                                                                                                                              p1 250 300

                                                                                                                                              p2 262 250

                                                                                                                                              p3 245 400

                                                                                                                                              p4 260 250

                                                                                                                                              p5 260 250

                                                                                                                                              p6 272 100

                                                                                                                                              80

                                                                                                                                              T-GROUP BY

                                                                                                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                              81

                                                                                                                                              Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                              s p qtyND-rank

                                                                                                                                              s4 p5 400 1

                                                                                                                                              s3 p2 400 1

                                                                                                                                              s1 p3 400 1

                                                                                                                                              s4 p4 300 4

                                                                                                                                              s2 p2 300 4

                                                                                                                                              s1 p1 300 4

                                                                                                                                              s4 p2 200 7

                                                                                                                                              s1 p4 200 7

                                                                                                                                              s1 p2 200 7

                                                                                                                                              s4 p1 200 7

                                                                                                                                              s1 p6 100 11

                                                                                                                                              s1 p5 100 11

                                                                                                                                              82

                                                                                                                                              Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                              s p qty ND-rank

                                                                                                                                              s4 p5 400 1

                                                                                                                                              s3 p2 400 1

                                                                                                                                              s1 p3 400 1

                                                                                                                                              s4 p4 300 4

                                                                                                                                              s2 p2 300 4

                                                                                                                                              s1 p1 300 4

                                                                                                                                              s4 p2 200 7

                                                                                                                                              s1 p4 200 7

                                                                                                                                              s1 p2 200 7

                                                                                                                                              s4 p1 200 7

                                                                                                                                              s1 p6 100 11

                                                                                                                                              s1 p5 100 11

                                                                                                                                              83

                                                                                                                                              Rangs Denses(Dense Ranking)

                                                                                                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                              s p qtyD-rank

                                                                                                                                              s1 p3 400 1

                                                                                                                                              s3 p2 400 1

                                                                                                                                              s4 p5 400 1

                                                                                                                                              s1 p1 300 2

                                                                                                                                              s2 p2 300 2

                                                                                                                                              s4 p4 300 2

                                                                                                                                              s1 p4 200 3

                                                                                                                                              s1 p2 200 3

                                                                                                                                              s4 p2 200 3

                                                                                                                                              s4 p1 200 3

                                                                                                                                              s1 p6 100 4

                                                                                                                                              s1 p5 100 4

                                                                                                                                              84

                                                                                                                                              Rangs DensesGraphique MsAccess

                                                                                                                                              s p qty D-rank

                                                                                                                                              s1 p3 400 1

                                                                                                                                              s3 p2 400 1

                                                                                                                                              s4 p5 400 1

                                                                                                                                              s1 p1 300 2

                                                                                                                                              s2 p2 300 2

                                                                                                                                              s4 p4 300 2

                                                                                                                                              s1 p4 200 3

                                                                                                                                              s1 p2 200 3

                                                                                                                                              s4 p2 200 3

                                                                                                                                              s4 p1 200 3

                                                                                                                                              s1 p6 100 4

                                                                                                                                              s1 p5 100 4

                                                                                                                                              85

                                                                                                                                              Distribution

                                                                                                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                              86

                                                                                                                                              Reacutesultat

                                                                                                                                              s Distribution

                                                                                                                                              s1 0419

                                                                                                                                              s2 0097

                                                                                                                                              s3 0129

                                                                                                                                              s4 0355

                                                                                                                                              87

                                                                                                                                              Distribution Cumulative

                                                                                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                              FROM SP

                                                                                                                                              ORDER BY SP[s]

                                                                                                                                              88

                                                                                                                                              Reacutesultat

                                                                                                                                              sDistribution Cumuleacutee

                                                                                                                                              s1 0419

                                                                                                                                              s2 0516

                                                                                                                                              s3 0645

                                                                                                                                              s4 1

                                                                                                                                              89

                                                                                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                              90

                                                                                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                              FROM S

                                                                                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                              s1 Smith Paris good good

                                                                                                                                              s2 Jones 100 london good VGood

                                                                                                                                              s3 Blake 30 Paris good good

                                                                                                                                              s4 Clark 10 london OK OK

                                                                                                                                              s5 Adams 30 Athens good good

                                                                                                                                              bull Notez le traitement du null

                                                                                                                                              91

                                                                                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                                                                                              FROM P where weight gt 13

                                                                                                                                              union

                                                                                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                              UNION

                                                                                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                              ORDER BY warning DESC weight DESC

                                                                                                                                              pname weight Warning

                                                                                                                                              cam 19 Very Heavy

                                                                                                                                              cog 19 Very Heavy

                                                                                                                                              bolt 17 Very Heavy

                                                                                                                                              nut 14 Very Heavy

                                                                                                                                              screw 14 Very Heavy

                                                                                                                                              nut 14 Quite Heavy

                                                                                                                                              screw 14 Quite Heavy

                                                                                                                                              screw 12 Quite Heavy

                                                                                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                              92

                                                                                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                              On considegravere AVG(Qty1) pour Qty

                                                                                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                              SP

                                                                                                                                              s p qtyQty1

                                                                                                                                              s1 p1 300 400

                                                                                                                                              s1 p2 200

                                                                                                                                              s1 p3 400 600

                                                                                                                                              s1 p4 200 300

                                                                                                                                              s1 p5 100

                                                                                                                                              s1 p6 100 200

                                                                                                                                              s2 p2 300 500

                                                                                                                                              s3 p2 400

                                                                                                                                              s4 p1 200 100

                                                                                                                                              s4 p2 200

                                                                                                                                              s4 p4 300

                                                                                                                                              s4 p5 400

                                                                                                                                              93

                                                                                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                              SP

                                                                                                                                              s p qtyQty1

                                                                                                                                              s1 p1 300 400

                                                                                                                                              s1 p2 200

                                                                                                                                              s1 p3 400 600

                                                                                                                                              s1 p4 200 300

                                                                                                                                              s1 p5 100

                                                                                                                                              s1 p6 100 200

                                                                                                                                              s2 p2 300 500

                                                                                                                                              s3 p2 400

                                                                                                                                              s4 p1 200 100

                                                                                                                                              s4 p2 200

                                                                                                                                              s4 p4 300

                                                                                                                                              s4 p5 400

                                                                                                                                              qty for partpredicted or

                                                                                                                                              unknown Qty1

                                                                                                                                              100 p5

                                                                                                                                              100 predicted value 200

                                                                                                                                              200 p2

                                                                                                                                              200 predicted value 200

                                                                                                                                              300 p4

                                                                                                                                              300 predicted value 450

                                                                                                                                              400 p2

                                                                                                                                              400 p5

                                                                                                                                              400 predicted value 600

                                                                                                                                              94

                                                                                                                                              Tendance

                                                                                                                                              qty Qty1

                                                                                                                                              100 200

                                                                                                                                              200 300

                                                                                                                                              300 400

                                                                                                                                              400 600

                                                                                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                              Graph 3D avec Qty en abscisses

                                                                                                                                              95

                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                              30102008 120 27102008 4

                                                                                                                                              25102008 131 22102008 4

                                                                                                                                              23102008 127 20102008 4

                                                                                                                                              17102008 269 14102008 4

                                                                                                                                              15102008 60 12102008 4

                                                                                                                                              11102008 295 08102008 4

                                                                                                                                              09102008 340 06102008 4

                                                                                                                                              08102008 324 05102008 4

                                                                                                                                              06102008 315 03102008 4

                                                                                                                                              96

                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                              Graphique avec une info-bulle

                                                                                                                                              97

                                                                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                              glissantes

                                                                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                                                                              bull MAVG

                                                                                                                                              bull MSUM

                                                                                                                                              bull MDIFF

                                                                                                                                              bull Voir Teradata + loin

                                                                                                                                              98

                                                                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                              99

                                                                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                              100

                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                              capital taux nval apregraves n ans

                                                                                                                                              taux1val1 apregraves n ans

                                                                                                                                              GainAbs GainRel

                                                                                                                                              100 005 1 105 006 106 1 1

                                                                                                                                              100 005 2 110 006 112 2 2

                                                                                                                                              100 005 3 115 006 119 4 4

                                                                                                                                              100 005 4 121 006 126 5 5

                                                                                                                                              100 005 5 127 006 133 6 6

                                                                                                                                              100 005 6 134 006 141 7 7

                                                                                                                                              100 005 7 140 006 150 10 10

                                                                                                                                              100 005 8 147 006 159 12 12

                                                                                                                                              100 005 9 155 006 168 13 13

                                                                                                                                              100 005 10 162 006 179 17 17

                                                                                                                                              100 005 11 171 006 189 18 18

                                                                                                                                              100 005 12 179 006 201 22 22

                                                                                                                                              100 005 13 188 006 213 25 25

                                                                                                                                              100 005 14 197 006 226 29 29

                                                                                                                                              100 005 15 207 006 239 32 32

                                                                                                                                              100 005 16 218 006 254 36 36

                                                                                                                                              100 005 17 229 006 269 40 40

                                                                                                                                              100 005 18 240 006 285 45 45

                                                                                                                                              100 005 19 252 006 302 50 50

                                                                                                                                              100 005 20 265 006 320 55 55

                                                                                                                                              101

                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                              102

                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                              financiers de la table Produits

                                                                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                              bull En ordre descendant de prix

                                                                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                              bull Plusieurs actionshellip

                                                                                                                                              103

                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                              P prix

                                                                                                                                              p3 200

                                                                                                                                              p1 200

                                                                                                                                              p2 400

                                                                                                                                              p3 200

                                                                                                                                              p4 100

                                                                                                                                              p6 100

                                                                                                                                              p5 300

                                                                                                                                              p8 300

                                                                                                                                              p7 400

                                                                                                                                              p10 200

                                                                                                                                              p12 300

                                                                                                                                              p13 300

                                                                                                                                              104

                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                              ORDER BY 4 desc 8 123

                                                                                                                                              105

                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                              106

                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                              107

                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                              108

                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                              109

                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                              110

                                                                                                                                              GROUPING SETS

                                                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                              HAVING tot-qty gt 100

                                                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                              111

                                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                                              112

                                                                                                                                              ROLLUP

                                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                                              113

                                                                                                                                              ROLLUP

                                                                                                                                              114

                                                                                                                                              ROLLUP

                                                                                                                                              Et le CUBE

                                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                                              de certains nuls

                                                                                                                                              115

                                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                              Wiley (publ)

                                                                                                                                              116

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                              117

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                              118

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              119

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              120

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              121

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              122

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                              123

                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                              Exeacutecution autonome

                                                                                                                                              124

                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                              hellip

                                                                                                                                              125

                                                                                                                                              Liste de Choix Multibase

                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                              126

                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                              148

                                                                                                                                              FIN

                                                                                                                                              149

                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                              • Slide 3
                                                                                                                                              • Synonymes
                                                                                                                                              • Noms dattributs
                                                                                                                                              • Slide 6
                                                                                                                                              • Slide 7
                                                                                                                                              • Slide 8
                                                                                                                                              • Insertion dans une Vue
                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                              • Expressions de valeur
                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                              • UNION et ORDER BY
                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                              • Preacutedicat TOP
                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                              • Clause BETWEEN
                                                                                                                                              • Limitations de NOT
                                                                                                                                              • ANY et ALL
                                                                                                                                              • Injection SQL
                                                                                                                                              • Injection SQL (2)
                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                              • XOR
                                                                                                                                              • IMP
                                                                                                                                              • Sous-requecirctes
                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                              • Valeurs nulles
                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                              • Fonction DDB
                                                                                                                                              • Fonction DDB (2)
                                                                                                                                              • Fonction PMT
                                                                                                                                              • Fonction PMT (2)
                                                                                                                                              • Placement agrave taux variable
                                                                                                                                              • GROUP BY
                                                                                                                                              • LIST Function
                                                                                                                                              • LIST Function (2)
                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                              • GROUP BY (2)
                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                              • T-GROUP BY
                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                              • Distribution
                                                                                                                                              • Reacutesultat
                                                                                                                                              • Distribution Cumulative
                                                                                                                                              • Reacutesultat (2)
                                                                                                                                              • Cateacutegorisation
                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                              • Tendance
                                                                                                                                              • Moyenne Glissante
                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                              • GROUPING SETS
                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                              • Slide 112
                                                                                                                                              • Slide 113
                                                                                                                                              • Slide 114
                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                              • FIN
                                                                                                                                              • Slide 149

                                                                                                                                                72

                                                                                                                                                LIST Function La requecircte

                                                                                                                                                SELECT P MAX(QTY) LIST(S QTY) FROM SP GROUP BY P

                                                                                                                                                Donne la valeur agreacutegeacutee et les deacutetails par fournisseur

                                                                                                                                                Comme les tabulations croiseacutees

                                                                                                                                                ndash Mais en + simple

                                                                                                                                                LIST nrsquoexiste en standard que sur SQL Anywhere DBMS

                                                                                                                                                ndash En mono attribut (2004)

                                                                                                                                                En MsAccess LIST peut ecirctre reacutealiseacute par un formulaire avec les

                                                                                                                                                sous-formulaires

                                                                                                                                                73

                                                                                                                                                LIST Function

                                                                                                                                                Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                                for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                                74

                                                                                                                                                GROUP BY avec WHERE

                                                                                                                                                Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                                est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                                75

                                                                                                                                                GROUP BY

                                                                                                                                                Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                                nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                                Pourquoi

                                                                                                                                                76

                                                                                                                                                GROUP BY avec HAVING

                                                                                                                                                La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                                est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                                Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                77

                                                                                                                                                T-GROUP BY Proposeacute pour SQL

                                                                                                                                                Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                                Le rocircle de -join par rapport agrave equi-join

                                                                                                                                                Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                                INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                                T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                                donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                                78

                                                                                                                                                T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                FROM SP Vrai ou Faux

                                                                                                                                                79

                                                                                                                                                T-GROUP BY

                                                                                                                                                Reacutesultat

                                                                                                                                                part avg_qty_other_parts part_avg_qty

                                                                                                                                                p1 250 300

                                                                                                                                                p2 262 250

                                                                                                                                                p3 245 400

                                                                                                                                                p4 260 250

                                                                                                                                                p5 260 250

                                                                                                                                                p6 272 100

                                                                                                                                                80

                                                                                                                                                T-GROUP BY

                                                                                                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                81

                                                                                                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                s p qtyND-rank

                                                                                                                                                s4 p5 400 1

                                                                                                                                                s3 p2 400 1

                                                                                                                                                s1 p3 400 1

                                                                                                                                                s4 p4 300 4

                                                                                                                                                s2 p2 300 4

                                                                                                                                                s1 p1 300 4

                                                                                                                                                s4 p2 200 7

                                                                                                                                                s1 p4 200 7

                                                                                                                                                s1 p2 200 7

                                                                                                                                                s4 p1 200 7

                                                                                                                                                s1 p6 100 11

                                                                                                                                                s1 p5 100 11

                                                                                                                                                82

                                                                                                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                s p qty ND-rank

                                                                                                                                                s4 p5 400 1

                                                                                                                                                s3 p2 400 1

                                                                                                                                                s1 p3 400 1

                                                                                                                                                s4 p4 300 4

                                                                                                                                                s2 p2 300 4

                                                                                                                                                s1 p1 300 4

                                                                                                                                                s4 p2 200 7

                                                                                                                                                s1 p4 200 7

                                                                                                                                                s1 p2 200 7

                                                                                                                                                s4 p1 200 7

                                                                                                                                                s1 p6 100 11

                                                                                                                                                s1 p5 100 11

                                                                                                                                                83

                                                                                                                                                Rangs Denses(Dense Ranking)

                                                                                                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                s p qtyD-rank

                                                                                                                                                s1 p3 400 1

                                                                                                                                                s3 p2 400 1

                                                                                                                                                s4 p5 400 1

                                                                                                                                                s1 p1 300 2

                                                                                                                                                s2 p2 300 2

                                                                                                                                                s4 p4 300 2

                                                                                                                                                s1 p4 200 3

                                                                                                                                                s1 p2 200 3

                                                                                                                                                s4 p2 200 3

                                                                                                                                                s4 p1 200 3

                                                                                                                                                s1 p6 100 4

                                                                                                                                                s1 p5 100 4

                                                                                                                                                84

                                                                                                                                                Rangs DensesGraphique MsAccess

                                                                                                                                                s p qty D-rank

                                                                                                                                                s1 p3 400 1

                                                                                                                                                s3 p2 400 1

                                                                                                                                                s4 p5 400 1

                                                                                                                                                s1 p1 300 2

                                                                                                                                                s2 p2 300 2

                                                                                                                                                s4 p4 300 2

                                                                                                                                                s1 p4 200 3

                                                                                                                                                s1 p2 200 3

                                                                                                                                                s4 p2 200 3

                                                                                                                                                s4 p1 200 3

                                                                                                                                                s1 p6 100 4

                                                                                                                                                s1 p5 100 4

                                                                                                                                                85

                                                                                                                                                Distribution

                                                                                                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                86

                                                                                                                                                Reacutesultat

                                                                                                                                                s Distribution

                                                                                                                                                s1 0419

                                                                                                                                                s2 0097

                                                                                                                                                s3 0129

                                                                                                                                                s4 0355

                                                                                                                                                87

                                                                                                                                                Distribution Cumulative

                                                                                                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                FROM SP

                                                                                                                                                ORDER BY SP[s]

                                                                                                                                                88

                                                                                                                                                Reacutesultat

                                                                                                                                                sDistribution Cumuleacutee

                                                                                                                                                s1 0419

                                                                                                                                                s2 0516

                                                                                                                                                s3 0645

                                                                                                                                                s4 1

                                                                                                                                                89

                                                                                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                90

                                                                                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                FROM S

                                                                                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                s1 Smith Paris good good

                                                                                                                                                s2 Jones 100 london good VGood

                                                                                                                                                s3 Blake 30 Paris good good

                                                                                                                                                s4 Clark 10 london OK OK

                                                                                                                                                s5 Adams 30 Athens good good

                                                                                                                                                bull Notez le traitement du null

                                                                                                                                                91

                                                                                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                FROM P where weight gt 13

                                                                                                                                                union

                                                                                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                UNION

                                                                                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                ORDER BY warning DESC weight DESC

                                                                                                                                                pname weight Warning

                                                                                                                                                cam 19 Very Heavy

                                                                                                                                                cog 19 Very Heavy

                                                                                                                                                bolt 17 Very Heavy

                                                                                                                                                nut 14 Very Heavy

                                                                                                                                                screw 14 Very Heavy

                                                                                                                                                nut 14 Quite Heavy

                                                                                                                                                screw 14 Quite Heavy

                                                                                                                                                screw 12 Quite Heavy

                                                                                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                92

                                                                                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                SP

                                                                                                                                                s p qtyQty1

                                                                                                                                                s1 p1 300 400

                                                                                                                                                s1 p2 200

                                                                                                                                                s1 p3 400 600

                                                                                                                                                s1 p4 200 300

                                                                                                                                                s1 p5 100

                                                                                                                                                s1 p6 100 200

                                                                                                                                                s2 p2 300 500

                                                                                                                                                s3 p2 400

                                                                                                                                                s4 p1 200 100

                                                                                                                                                s4 p2 200

                                                                                                                                                s4 p4 300

                                                                                                                                                s4 p5 400

                                                                                                                                                93

                                                                                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                SP

                                                                                                                                                s p qtyQty1

                                                                                                                                                s1 p1 300 400

                                                                                                                                                s1 p2 200

                                                                                                                                                s1 p3 400 600

                                                                                                                                                s1 p4 200 300

                                                                                                                                                s1 p5 100

                                                                                                                                                s1 p6 100 200

                                                                                                                                                s2 p2 300 500

                                                                                                                                                s3 p2 400

                                                                                                                                                s4 p1 200 100

                                                                                                                                                s4 p2 200

                                                                                                                                                s4 p4 300

                                                                                                                                                s4 p5 400

                                                                                                                                                qty for partpredicted or

                                                                                                                                                unknown Qty1

                                                                                                                                                100 p5

                                                                                                                                                100 predicted value 200

                                                                                                                                                200 p2

                                                                                                                                                200 predicted value 200

                                                                                                                                                300 p4

                                                                                                                                                300 predicted value 450

                                                                                                                                                400 p2

                                                                                                                                                400 p5

                                                                                                                                                400 predicted value 600

                                                                                                                                                94

                                                                                                                                                Tendance

                                                                                                                                                qty Qty1

                                                                                                                                                100 200

                                                                                                                                                200 300

                                                                                                                                                300 400

                                                                                                                                                400 600

                                                                                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                Graph 3D avec Qty en abscisses

                                                                                                                                                95

                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                30102008 120 27102008 4

                                                                                                                                                25102008 131 22102008 4

                                                                                                                                                23102008 127 20102008 4

                                                                                                                                                17102008 269 14102008 4

                                                                                                                                                15102008 60 12102008 4

                                                                                                                                                11102008 295 08102008 4

                                                                                                                                                09102008 340 06102008 4

                                                                                                                                                08102008 324 05102008 4

                                                                                                                                                06102008 315 03102008 4

                                                                                                                                                96

                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                Graphique avec une info-bulle

                                                                                                                                                97

                                                                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                glissantes

                                                                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                bull MAVG

                                                                                                                                                bull MSUM

                                                                                                                                                bull MDIFF

                                                                                                                                                bull Voir Teradata + loin

                                                                                                                                                98

                                                                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                99

                                                                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                100

                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                capital taux nval apregraves n ans

                                                                                                                                                taux1val1 apregraves n ans

                                                                                                                                                GainAbs GainRel

                                                                                                                                                100 005 1 105 006 106 1 1

                                                                                                                                                100 005 2 110 006 112 2 2

                                                                                                                                                100 005 3 115 006 119 4 4

                                                                                                                                                100 005 4 121 006 126 5 5

                                                                                                                                                100 005 5 127 006 133 6 6

                                                                                                                                                100 005 6 134 006 141 7 7

                                                                                                                                                100 005 7 140 006 150 10 10

                                                                                                                                                100 005 8 147 006 159 12 12

                                                                                                                                                100 005 9 155 006 168 13 13

                                                                                                                                                100 005 10 162 006 179 17 17

                                                                                                                                                100 005 11 171 006 189 18 18

                                                                                                                                                100 005 12 179 006 201 22 22

                                                                                                                                                100 005 13 188 006 213 25 25

                                                                                                                                                100 005 14 197 006 226 29 29

                                                                                                                                                100 005 15 207 006 239 32 32

                                                                                                                                                100 005 16 218 006 254 36 36

                                                                                                                                                100 005 17 229 006 269 40 40

                                                                                                                                                100 005 18 240 006 285 45 45

                                                                                                                                                100 005 19 252 006 302 50 50

                                                                                                                                                100 005 20 265 006 320 55 55

                                                                                                                                                101

                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                102

                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                financiers de la table Produits

                                                                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                bull En ordre descendant de prix

                                                                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                bull Plusieurs actionshellip

                                                                                                                                                103

                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                P prix

                                                                                                                                                p3 200

                                                                                                                                                p1 200

                                                                                                                                                p2 400

                                                                                                                                                p3 200

                                                                                                                                                p4 100

                                                                                                                                                p6 100

                                                                                                                                                p5 300

                                                                                                                                                p8 300

                                                                                                                                                p7 400

                                                                                                                                                p10 200

                                                                                                                                                p12 300

                                                                                                                                                p13 300

                                                                                                                                                104

                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                                                105

                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                106

                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                107

                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                108

                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                109

                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                110

                                                                                                                                                GROUPING SETS

                                                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                HAVING tot-qty gt 100

                                                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                111

                                                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                                                112

                                                                                                                                                ROLLUP

                                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                                113

                                                                                                                                                ROLLUP

                                                                                                                                                114

                                                                                                                                                ROLLUP

                                                                                                                                                Et le CUBE

                                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                                de certains nuls

                                                                                                                                                115

                                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                Wiley (publ)

                                                                                                                                                116

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                117

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                118

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                119

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                120

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                121

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                122

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                123

                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                Exeacutecution autonome

                                                                                                                                                124

                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                hellip

                                                                                                                                                125

                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                126

                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                148

                                                                                                                                                FIN

                                                                                                                                                149

                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                • Slide 3
                                                                                                                                                • Synonymes
                                                                                                                                                • Noms dattributs
                                                                                                                                                • Slide 6
                                                                                                                                                • Slide 7
                                                                                                                                                • Slide 8
                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                • Expressions de valeur
                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                • Clause BETWEEN
                                                                                                                                                • Limitations de NOT
                                                                                                                                                • ANY et ALL
                                                                                                                                                • Injection SQL
                                                                                                                                                • Injection SQL (2)
                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                • XOR
                                                                                                                                                • IMP
                                                                                                                                                • Sous-requecirctes
                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                • Valeurs nulles
                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                • Fonction DDB
                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                • Fonction PMT
                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                • GROUP BY
                                                                                                                                                • LIST Function
                                                                                                                                                • LIST Function (2)
                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                • GROUP BY (2)
                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                • T-GROUP BY
                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                • Distribution
                                                                                                                                                • Reacutesultat
                                                                                                                                                • Distribution Cumulative
                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                • Cateacutegorisation
                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                • Tendance
                                                                                                                                                • Moyenne Glissante
                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                • GROUPING SETS
                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                • Slide 112
                                                                                                                                                • Slide 113
                                                                                                                                                • Slide 114
                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                • FIN
                                                                                                                                                • Slide 149

                                                                                                                                                  73

                                                                                                                                                  LIST Function

                                                                                                                                                  Pour en savoir +ndash Litwin W Explicit and Implicit LIST Aggregate Function

                                                                                                                                                  for Relational Databases IASTED Intl Conf On Databases amp Applications 2004

                                                                                                                                                  74

                                                                                                                                                  GROUP BY avec WHERE

                                                                                                                                                  Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                                  est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                  Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                                  75

                                                                                                                                                  GROUP BY

                                                                                                                                                  Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                                  nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                                  Pourquoi

                                                                                                                                                  76

                                                                                                                                                  GROUP BY avec HAVING

                                                                                                                                                  La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                                  est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                                  Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                  77

                                                                                                                                                  T-GROUP BY Proposeacute pour SQL

                                                                                                                                                  Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                                  Le rocircle de -join par rapport agrave equi-join

                                                                                                                                                  Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                                  INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                                  T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                                  donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                                  78

                                                                                                                                                  T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                  lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                  (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                  FROM SP Vrai ou Faux

                                                                                                                                                  79

                                                                                                                                                  T-GROUP BY

                                                                                                                                                  Reacutesultat

                                                                                                                                                  part avg_qty_other_parts part_avg_qty

                                                                                                                                                  p1 250 300

                                                                                                                                                  p2 262 250

                                                                                                                                                  p3 245 400

                                                                                                                                                  p4 260 250

                                                                                                                                                  p5 260 250

                                                                                                                                                  p6 272 100

                                                                                                                                                  80

                                                                                                                                                  T-GROUP BY

                                                                                                                                                  En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                  Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                  81

                                                                                                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                  s p qtyND-rank

                                                                                                                                                  s4 p5 400 1

                                                                                                                                                  s3 p2 400 1

                                                                                                                                                  s1 p3 400 1

                                                                                                                                                  s4 p4 300 4

                                                                                                                                                  s2 p2 300 4

                                                                                                                                                  s1 p1 300 4

                                                                                                                                                  s4 p2 200 7

                                                                                                                                                  s1 p4 200 7

                                                                                                                                                  s1 p2 200 7

                                                                                                                                                  s4 p1 200 7

                                                                                                                                                  s1 p6 100 11

                                                                                                                                                  s1 p5 100 11

                                                                                                                                                  82

                                                                                                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                  s p qty ND-rank

                                                                                                                                                  s4 p5 400 1

                                                                                                                                                  s3 p2 400 1

                                                                                                                                                  s1 p3 400 1

                                                                                                                                                  s4 p4 300 4

                                                                                                                                                  s2 p2 300 4

                                                                                                                                                  s1 p1 300 4

                                                                                                                                                  s4 p2 200 7

                                                                                                                                                  s1 p4 200 7

                                                                                                                                                  s1 p2 200 7

                                                                                                                                                  s4 p1 200 7

                                                                                                                                                  s1 p6 100 11

                                                                                                                                                  s1 p5 100 11

                                                                                                                                                  83

                                                                                                                                                  Rangs Denses(Dense Ranking)

                                                                                                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                  s p qtyD-rank

                                                                                                                                                  s1 p3 400 1

                                                                                                                                                  s3 p2 400 1

                                                                                                                                                  s4 p5 400 1

                                                                                                                                                  s1 p1 300 2

                                                                                                                                                  s2 p2 300 2

                                                                                                                                                  s4 p4 300 2

                                                                                                                                                  s1 p4 200 3

                                                                                                                                                  s1 p2 200 3

                                                                                                                                                  s4 p2 200 3

                                                                                                                                                  s4 p1 200 3

                                                                                                                                                  s1 p6 100 4

                                                                                                                                                  s1 p5 100 4

                                                                                                                                                  84

                                                                                                                                                  Rangs DensesGraphique MsAccess

                                                                                                                                                  s p qty D-rank

                                                                                                                                                  s1 p3 400 1

                                                                                                                                                  s3 p2 400 1

                                                                                                                                                  s4 p5 400 1

                                                                                                                                                  s1 p1 300 2

                                                                                                                                                  s2 p2 300 2

                                                                                                                                                  s4 p4 300 2

                                                                                                                                                  s1 p4 200 3

                                                                                                                                                  s1 p2 200 3

                                                                                                                                                  s4 p2 200 3

                                                                                                                                                  s4 p1 200 3

                                                                                                                                                  s1 p6 100 4

                                                                                                                                                  s1 p5 100 4

                                                                                                                                                  85

                                                                                                                                                  Distribution

                                                                                                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                  86

                                                                                                                                                  Reacutesultat

                                                                                                                                                  s Distribution

                                                                                                                                                  s1 0419

                                                                                                                                                  s2 0097

                                                                                                                                                  s3 0129

                                                                                                                                                  s4 0355

                                                                                                                                                  87

                                                                                                                                                  Distribution Cumulative

                                                                                                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                  FROM SP

                                                                                                                                                  ORDER BY SP[s]

                                                                                                                                                  88

                                                                                                                                                  Reacutesultat

                                                                                                                                                  sDistribution Cumuleacutee

                                                                                                                                                  s1 0419

                                                                                                                                                  s2 0516

                                                                                                                                                  s3 0645

                                                                                                                                                  s4 1

                                                                                                                                                  89

                                                                                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                  90

                                                                                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                  FROM S

                                                                                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                  s1 Smith Paris good good

                                                                                                                                                  s2 Jones 100 london good VGood

                                                                                                                                                  s3 Blake 30 Paris good good

                                                                                                                                                  s4 Clark 10 london OK OK

                                                                                                                                                  s5 Adams 30 Athens good good

                                                                                                                                                  bull Notez le traitement du null

                                                                                                                                                  91

                                                                                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                  FROM P where weight gt 13

                                                                                                                                                  union

                                                                                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                  UNION

                                                                                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                  ORDER BY warning DESC weight DESC

                                                                                                                                                  pname weight Warning

                                                                                                                                                  cam 19 Very Heavy

                                                                                                                                                  cog 19 Very Heavy

                                                                                                                                                  bolt 17 Very Heavy

                                                                                                                                                  nut 14 Very Heavy

                                                                                                                                                  screw 14 Very Heavy

                                                                                                                                                  nut 14 Quite Heavy

                                                                                                                                                  screw 14 Quite Heavy

                                                                                                                                                  screw 12 Quite Heavy

                                                                                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                  92

                                                                                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                  SP

                                                                                                                                                  s p qtyQty1

                                                                                                                                                  s1 p1 300 400

                                                                                                                                                  s1 p2 200

                                                                                                                                                  s1 p3 400 600

                                                                                                                                                  s1 p4 200 300

                                                                                                                                                  s1 p5 100

                                                                                                                                                  s1 p6 100 200

                                                                                                                                                  s2 p2 300 500

                                                                                                                                                  s3 p2 400

                                                                                                                                                  s4 p1 200 100

                                                                                                                                                  s4 p2 200

                                                                                                                                                  s4 p4 300

                                                                                                                                                  s4 p5 400

                                                                                                                                                  93

                                                                                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                  SP

                                                                                                                                                  s p qtyQty1

                                                                                                                                                  s1 p1 300 400

                                                                                                                                                  s1 p2 200

                                                                                                                                                  s1 p3 400 600

                                                                                                                                                  s1 p4 200 300

                                                                                                                                                  s1 p5 100

                                                                                                                                                  s1 p6 100 200

                                                                                                                                                  s2 p2 300 500

                                                                                                                                                  s3 p2 400

                                                                                                                                                  s4 p1 200 100

                                                                                                                                                  s4 p2 200

                                                                                                                                                  s4 p4 300

                                                                                                                                                  s4 p5 400

                                                                                                                                                  qty for partpredicted or

                                                                                                                                                  unknown Qty1

                                                                                                                                                  100 p5

                                                                                                                                                  100 predicted value 200

                                                                                                                                                  200 p2

                                                                                                                                                  200 predicted value 200

                                                                                                                                                  300 p4

                                                                                                                                                  300 predicted value 450

                                                                                                                                                  400 p2

                                                                                                                                                  400 p5

                                                                                                                                                  400 predicted value 600

                                                                                                                                                  94

                                                                                                                                                  Tendance

                                                                                                                                                  qty Qty1

                                                                                                                                                  100 200

                                                                                                                                                  200 300

                                                                                                                                                  300 400

                                                                                                                                                  400 600

                                                                                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                  Graph 3D avec Qty en abscisses

                                                                                                                                                  95

                                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                  30102008 120 27102008 4

                                                                                                                                                  25102008 131 22102008 4

                                                                                                                                                  23102008 127 20102008 4

                                                                                                                                                  17102008 269 14102008 4

                                                                                                                                                  15102008 60 12102008 4

                                                                                                                                                  11102008 295 08102008 4

                                                                                                                                                  09102008 340 06102008 4

                                                                                                                                                  08102008 324 05102008 4

                                                                                                                                                  06102008 315 03102008 4

                                                                                                                                                  96

                                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                  Graphique avec une info-bulle

                                                                                                                                                  97

                                                                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                  glissantes

                                                                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                  bull MAVG

                                                                                                                                                  bull MSUM

                                                                                                                                                  bull MDIFF

                                                                                                                                                  bull Voir Teradata + loin

                                                                                                                                                  98

                                                                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                  99

                                                                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                  100

                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                  capital taux nval apregraves n ans

                                                                                                                                                  taux1val1 apregraves n ans

                                                                                                                                                  GainAbs GainRel

                                                                                                                                                  100 005 1 105 006 106 1 1

                                                                                                                                                  100 005 2 110 006 112 2 2

                                                                                                                                                  100 005 3 115 006 119 4 4

                                                                                                                                                  100 005 4 121 006 126 5 5

                                                                                                                                                  100 005 5 127 006 133 6 6

                                                                                                                                                  100 005 6 134 006 141 7 7

                                                                                                                                                  100 005 7 140 006 150 10 10

                                                                                                                                                  100 005 8 147 006 159 12 12

                                                                                                                                                  100 005 9 155 006 168 13 13

                                                                                                                                                  100 005 10 162 006 179 17 17

                                                                                                                                                  100 005 11 171 006 189 18 18

                                                                                                                                                  100 005 12 179 006 201 22 22

                                                                                                                                                  100 005 13 188 006 213 25 25

                                                                                                                                                  100 005 14 197 006 226 29 29

                                                                                                                                                  100 005 15 207 006 239 32 32

                                                                                                                                                  100 005 16 218 006 254 36 36

                                                                                                                                                  100 005 17 229 006 269 40 40

                                                                                                                                                  100 005 18 240 006 285 45 45

                                                                                                                                                  100 005 19 252 006 302 50 50

                                                                                                                                                  100 005 20 265 006 320 55 55

                                                                                                                                                  101

                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                  102

                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                  financiers de la table Produits

                                                                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                  bull En ordre descendant de prix

                                                                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                  bull Plusieurs actionshellip

                                                                                                                                                  103

                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                  P prix

                                                                                                                                                  p3 200

                                                                                                                                                  p1 200

                                                                                                                                                  p2 400

                                                                                                                                                  p3 200

                                                                                                                                                  p4 100

                                                                                                                                                  p6 100

                                                                                                                                                  p5 300

                                                                                                                                                  p8 300

                                                                                                                                                  p7 400

                                                                                                                                                  p10 200

                                                                                                                                                  p12 300

                                                                                                                                                  p13 300

                                                                                                                                                  104

                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                  ORDER BY 4 desc 8 123

                                                                                                                                                  105

                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                  106

                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                  107

                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                  108

                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                  109

                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                  110

                                                                                                                                                  GROUPING SETS

                                                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                  HAVING tot-qty gt 100

                                                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                  111

                                                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                                                  112

                                                                                                                                                  ROLLUP

                                                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                                                  113

                                                                                                                                                  ROLLUP

                                                                                                                                                  114

                                                                                                                                                  ROLLUP

                                                                                                                                                  Et le CUBE

                                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                                  de certains nuls

                                                                                                                                                  115

                                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                  Wiley (publ)

                                                                                                                                                  116

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                  117

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                  118

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  119

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  120

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  121

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  122

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                  123

                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                  124

                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                  hellip

                                                                                                                                                  125

                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                  126

                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                  148

                                                                                                                                                  FIN

                                                                                                                                                  149

                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                  • Slide 3
                                                                                                                                                  • Synonymes
                                                                                                                                                  • Noms dattributs
                                                                                                                                                  • Slide 6
                                                                                                                                                  • Slide 7
                                                                                                                                                  • Slide 8
                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                  • Expressions de valeur
                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                  • Limitations de NOT
                                                                                                                                                  • ANY et ALL
                                                                                                                                                  • Injection SQL
                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                  • XOR
                                                                                                                                                  • IMP
                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                  • Valeurs nulles
                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                  • Fonction DDB
                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                  • Fonction PMT
                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                  • GROUP BY
                                                                                                                                                  • LIST Function
                                                                                                                                                  • LIST Function (2)
                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                  • T-GROUP BY
                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                  • Distribution
                                                                                                                                                  • Reacutesultat
                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                  • Tendance
                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                  • GROUPING SETS
                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                  • Slide 112
                                                                                                                                                  • Slide 113
                                                                                                                                                  • Slide 114
                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                  • FIN
                                                                                                                                                  • Slide 149

                                                                                                                                                    74

                                                                                                                                                    GROUP BY avec WHERE

                                                                                                                                                    Clause WHERESELECT P MAX(QTY) MIN(QTY) FROM SP WHERE S ltgt lsquo S1 rsquo GROUP BY P

                                                                                                                                                    est eacutequivalente agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MAXQ(SELECT MIN(QTY) FROM SP AS X WHERE XS ltgt lsquo S1 rsquo AND XP = SPP) AS MINQ FROM SP WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                    Peut servir pour reacutealiser T-GROUP BY (voir plus loin)

                                                                                                                                                    75

                                                                                                                                                    GROUP BY

                                                                                                                                                    Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                                    nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                                    Pourquoi

                                                                                                                                                    76

                                                                                                                                                    GROUP BY avec HAVING

                                                                                                                                                    La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                                    est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                                    Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                    77

                                                                                                                                                    T-GROUP BY Proposeacute pour SQL

                                                                                                                                                    Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                                    Le rocircle de -join par rapport agrave equi-join

                                                                                                                                                    Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                                    INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                                    T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                                    donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                                    78

                                                                                                                                                    T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                    lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                    (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                    FROM SP Vrai ou Faux

                                                                                                                                                    79

                                                                                                                                                    T-GROUP BY

                                                                                                                                                    Reacutesultat

                                                                                                                                                    part avg_qty_other_parts part_avg_qty

                                                                                                                                                    p1 250 300

                                                                                                                                                    p2 262 250

                                                                                                                                                    p3 245 400

                                                                                                                                                    p4 260 250

                                                                                                                                                    p5 260 250

                                                                                                                                                    p6 272 100

                                                                                                                                                    80

                                                                                                                                                    T-GROUP BY

                                                                                                                                                    En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                    Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                    81

                                                                                                                                                    Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                    SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                    s p qtyND-rank

                                                                                                                                                    s4 p5 400 1

                                                                                                                                                    s3 p2 400 1

                                                                                                                                                    s1 p3 400 1

                                                                                                                                                    s4 p4 300 4

                                                                                                                                                    s2 p2 300 4

                                                                                                                                                    s1 p1 300 4

                                                                                                                                                    s4 p2 200 7

                                                                                                                                                    s1 p4 200 7

                                                                                                                                                    s1 p2 200 7

                                                                                                                                                    s4 p1 200 7

                                                                                                                                                    s1 p6 100 11

                                                                                                                                                    s1 p5 100 11

                                                                                                                                                    82

                                                                                                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                    s p qty ND-rank

                                                                                                                                                    s4 p5 400 1

                                                                                                                                                    s3 p2 400 1

                                                                                                                                                    s1 p3 400 1

                                                                                                                                                    s4 p4 300 4

                                                                                                                                                    s2 p2 300 4

                                                                                                                                                    s1 p1 300 4

                                                                                                                                                    s4 p2 200 7

                                                                                                                                                    s1 p4 200 7

                                                                                                                                                    s1 p2 200 7

                                                                                                                                                    s4 p1 200 7

                                                                                                                                                    s1 p6 100 11

                                                                                                                                                    s1 p5 100 11

                                                                                                                                                    83

                                                                                                                                                    Rangs Denses(Dense Ranking)

                                                                                                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                    s p qtyD-rank

                                                                                                                                                    s1 p3 400 1

                                                                                                                                                    s3 p2 400 1

                                                                                                                                                    s4 p5 400 1

                                                                                                                                                    s1 p1 300 2

                                                                                                                                                    s2 p2 300 2

                                                                                                                                                    s4 p4 300 2

                                                                                                                                                    s1 p4 200 3

                                                                                                                                                    s1 p2 200 3

                                                                                                                                                    s4 p2 200 3

                                                                                                                                                    s4 p1 200 3

                                                                                                                                                    s1 p6 100 4

                                                                                                                                                    s1 p5 100 4

                                                                                                                                                    84

                                                                                                                                                    Rangs DensesGraphique MsAccess

                                                                                                                                                    s p qty D-rank

                                                                                                                                                    s1 p3 400 1

                                                                                                                                                    s3 p2 400 1

                                                                                                                                                    s4 p5 400 1

                                                                                                                                                    s1 p1 300 2

                                                                                                                                                    s2 p2 300 2

                                                                                                                                                    s4 p4 300 2

                                                                                                                                                    s1 p4 200 3

                                                                                                                                                    s1 p2 200 3

                                                                                                                                                    s4 p2 200 3

                                                                                                                                                    s4 p1 200 3

                                                                                                                                                    s1 p6 100 4

                                                                                                                                                    s1 p5 100 4

                                                                                                                                                    85

                                                                                                                                                    Distribution

                                                                                                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                    86

                                                                                                                                                    Reacutesultat

                                                                                                                                                    s Distribution

                                                                                                                                                    s1 0419

                                                                                                                                                    s2 0097

                                                                                                                                                    s3 0129

                                                                                                                                                    s4 0355

                                                                                                                                                    87

                                                                                                                                                    Distribution Cumulative

                                                                                                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                    FROM SP

                                                                                                                                                    ORDER BY SP[s]

                                                                                                                                                    88

                                                                                                                                                    Reacutesultat

                                                                                                                                                    sDistribution Cumuleacutee

                                                                                                                                                    s1 0419

                                                                                                                                                    s2 0516

                                                                                                                                                    s3 0645

                                                                                                                                                    s4 1

                                                                                                                                                    89

                                                                                                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                    90

                                                                                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                    FROM S

                                                                                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                    s1 Smith Paris good good

                                                                                                                                                    s2 Jones 100 london good VGood

                                                                                                                                                    s3 Blake 30 Paris good good

                                                                                                                                                    s4 Clark 10 london OK OK

                                                                                                                                                    s5 Adams 30 Athens good good

                                                                                                                                                    bull Notez le traitement du null

                                                                                                                                                    91

                                                                                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                    FROM P where weight gt 13

                                                                                                                                                    union

                                                                                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                    UNION

                                                                                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                    ORDER BY warning DESC weight DESC

                                                                                                                                                    pname weight Warning

                                                                                                                                                    cam 19 Very Heavy

                                                                                                                                                    cog 19 Very Heavy

                                                                                                                                                    bolt 17 Very Heavy

                                                                                                                                                    nut 14 Very Heavy

                                                                                                                                                    screw 14 Very Heavy

                                                                                                                                                    nut 14 Quite Heavy

                                                                                                                                                    screw 14 Quite Heavy

                                                                                                                                                    screw 12 Quite Heavy

                                                                                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                    92

                                                                                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                    SP

                                                                                                                                                    s p qtyQty1

                                                                                                                                                    s1 p1 300 400

                                                                                                                                                    s1 p2 200

                                                                                                                                                    s1 p3 400 600

                                                                                                                                                    s1 p4 200 300

                                                                                                                                                    s1 p5 100

                                                                                                                                                    s1 p6 100 200

                                                                                                                                                    s2 p2 300 500

                                                                                                                                                    s3 p2 400

                                                                                                                                                    s4 p1 200 100

                                                                                                                                                    s4 p2 200

                                                                                                                                                    s4 p4 300

                                                                                                                                                    s4 p5 400

                                                                                                                                                    93

                                                                                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                    SP

                                                                                                                                                    s p qtyQty1

                                                                                                                                                    s1 p1 300 400

                                                                                                                                                    s1 p2 200

                                                                                                                                                    s1 p3 400 600

                                                                                                                                                    s1 p4 200 300

                                                                                                                                                    s1 p5 100

                                                                                                                                                    s1 p6 100 200

                                                                                                                                                    s2 p2 300 500

                                                                                                                                                    s3 p2 400

                                                                                                                                                    s4 p1 200 100

                                                                                                                                                    s4 p2 200

                                                                                                                                                    s4 p4 300

                                                                                                                                                    s4 p5 400

                                                                                                                                                    qty for partpredicted or

                                                                                                                                                    unknown Qty1

                                                                                                                                                    100 p5

                                                                                                                                                    100 predicted value 200

                                                                                                                                                    200 p2

                                                                                                                                                    200 predicted value 200

                                                                                                                                                    300 p4

                                                                                                                                                    300 predicted value 450

                                                                                                                                                    400 p2

                                                                                                                                                    400 p5

                                                                                                                                                    400 predicted value 600

                                                                                                                                                    94

                                                                                                                                                    Tendance

                                                                                                                                                    qty Qty1

                                                                                                                                                    100 200

                                                                                                                                                    200 300

                                                                                                                                                    300 400

                                                                                                                                                    400 600

                                                                                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                    Graph 3D avec Qty en abscisses

                                                                                                                                                    95

                                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                    30102008 120 27102008 4

                                                                                                                                                    25102008 131 22102008 4

                                                                                                                                                    23102008 127 20102008 4

                                                                                                                                                    17102008 269 14102008 4

                                                                                                                                                    15102008 60 12102008 4

                                                                                                                                                    11102008 295 08102008 4

                                                                                                                                                    09102008 340 06102008 4

                                                                                                                                                    08102008 324 05102008 4

                                                                                                                                                    06102008 315 03102008 4

                                                                                                                                                    96

                                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                    Graphique avec une info-bulle

                                                                                                                                                    97

                                                                                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                    glissantes

                                                                                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                    bull MAVG

                                                                                                                                                    bull MSUM

                                                                                                                                                    bull MDIFF

                                                                                                                                                    bull Voir Teradata + loin

                                                                                                                                                    98

                                                                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                    99

                                                                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                    100

                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                    capital taux nval apregraves n ans

                                                                                                                                                    taux1val1 apregraves n ans

                                                                                                                                                    GainAbs GainRel

                                                                                                                                                    100 005 1 105 006 106 1 1

                                                                                                                                                    100 005 2 110 006 112 2 2

                                                                                                                                                    100 005 3 115 006 119 4 4

                                                                                                                                                    100 005 4 121 006 126 5 5

                                                                                                                                                    100 005 5 127 006 133 6 6

                                                                                                                                                    100 005 6 134 006 141 7 7

                                                                                                                                                    100 005 7 140 006 150 10 10

                                                                                                                                                    100 005 8 147 006 159 12 12

                                                                                                                                                    100 005 9 155 006 168 13 13

                                                                                                                                                    100 005 10 162 006 179 17 17

                                                                                                                                                    100 005 11 171 006 189 18 18

                                                                                                                                                    100 005 12 179 006 201 22 22

                                                                                                                                                    100 005 13 188 006 213 25 25

                                                                                                                                                    100 005 14 197 006 226 29 29

                                                                                                                                                    100 005 15 207 006 239 32 32

                                                                                                                                                    100 005 16 218 006 254 36 36

                                                                                                                                                    100 005 17 229 006 269 40 40

                                                                                                                                                    100 005 18 240 006 285 45 45

                                                                                                                                                    100 005 19 252 006 302 50 50

                                                                                                                                                    100 005 20 265 006 320 55 55

                                                                                                                                                    101

                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                    102

                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                    financiers de la table Produits

                                                                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                    bull En ordre descendant de prix

                                                                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                    bull Plusieurs actionshellip

                                                                                                                                                    103

                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                    P prix

                                                                                                                                                    p3 200

                                                                                                                                                    p1 200

                                                                                                                                                    p2 400

                                                                                                                                                    p3 200

                                                                                                                                                    p4 100

                                                                                                                                                    p6 100

                                                                                                                                                    p5 300

                                                                                                                                                    p8 300

                                                                                                                                                    p7 400

                                                                                                                                                    p10 200

                                                                                                                                                    p12 300

                                                                                                                                                    p13 300

                                                                                                                                                    104

                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                    ORDER BY 4 desc 8 123

                                                                                                                                                    105

                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                    106

                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                    107

                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                    108

                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                    109

                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                    110

                                                                                                                                                    GROUPING SETS

                                                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                    HAVING tot-qty gt 100

                                                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                    111

                                                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                                                    112

                                                                                                                                                    ROLLUP

                                                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                                                    113

                                                                                                                                                    ROLLUP

                                                                                                                                                    114

                                                                                                                                                    ROLLUP

                                                                                                                                                    Et le CUBE

                                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                                    de certains nuls

                                                                                                                                                    115

                                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                    Wiley (publ)

                                                                                                                                                    116

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                    117

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                    118

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    119

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    120

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    121

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    122

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                    123

                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                    124

                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                    hellip

                                                                                                                                                    125

                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                    126

                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                    148

                                                                                                                                                    FIN

                                                                                                                                                    149

                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                    • Slide 3
                                                                                                                                                    • Synonymes
                                                                                                                                                    • Noms dattributs
                                                                                                                                                    • Slide 6
                                                                                                                                                    • Slide 7
                                                                                                                                                    • Slide 8
                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                    • Expressions de valeur
                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                    • Limitations de NOT
                                                                                                                                                    • ANY et ALL
                                                                                                                                                    • Injection SQL
                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                    • XOR
                                                                                                                                                    • IMP
                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                    • Valeurs nulles
                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                    • Fonction DDB
                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                    • Fonction PMT
                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                    • GROUP BY
                                                                                                                                                    • LIST Function
                                                                                                                                                    • LIST Function (2)
                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                    • T-GROUP BY
                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                    • Distribution
                                                                                                                                                    • Reacutesultat
                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                    • Tendance
                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                    • GROUPING SETS
                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                    • Slide 112
                                                                                                                                                    • Slide 113
                                                                                                                                                    • Slide 114
                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                    • FIN
                                                                                                                                                    • Slide 149

                                                                                                                                                      75

                                                                                                                                                      GROUP BY

                                                                                                                                                      Les deux formulations ne sont pas toujours eacutequivalentesSELECT MAX(QTY)FROM SPGROUP BY P

                                                                                                                                                      nrsquoest pas (tout agrave fait) eacutequivalent agraveSELECT DISTINCT P (SELECT MAX(QTY) FROM SP AS X WHERE XP = SPP) FROM SP

                                                                                                                                                      Pourquoi

                                                                                                                                                      76

                                                                                                                                                      GROUP BY avec HAVING

                                                                                                                                                      La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                                      est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                                      Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                      77

                                                                                                                                                      T-GROUP BY Proposeacute pour SQL

                                                                                                                                                      Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                                      Le rocircle de -join par rapport agrave equi-join

                                                                                                                                                      Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                                      INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                                      T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                                      donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                                      78

                                                                                                                                                      T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                      lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                      (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                      FROM SP Vrai ou Faux

                                                                                                                                                      79

                                                                                                                                                      T-GROUP BY

                                                                                                                                                      Reacutesultat

                                                                                                                                                      part avg_qty_other_parts part_avg_qty

                                                                                                                                                      p1 250 300

                                                                                                                                                      p2 262 250

                                                                                                                                                      p3 245 400

                                                                                                                                                      p4 260 250

                                                                                                                                                      p5 260 250

                                                                                                                                                      p6 272 100

                                                                                                                                                      80

                                                                                                                                                      T-GROUP BY

                                                                                                                                                      En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                      Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                      81

                                                                                                                                                      Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                      SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                      s p qtyND-rank

                                                                                                                                                      s4 p5 400 1

                                                                                                                                                      s3 p2 400 1

                                                                                                                                                      s1 p3 400 1

                                                                                                                                                      s4 p4 300 4

                                                                                                                                                      s2 p2 300 4

                                                                                                                                                      s1 p1 300 4

                                                                                                                                                      s4 p2 200 7

                                                                                                                                                      s1 p4 200 7

                                                                                                                                                      s1 p2 200 7

                                                                                                                                                      s4 p1 200 7

                                                                                                                                                      s1 p6 100 11

                                                                                                                                                      s1 p5 100 11

                                                                                                                                                      82

                                                                                                                                                      Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                      s p qty ND-rank

                                                                                                                                                      s4 p5 400 1

                                                                                                                                                      s3 p2 400 1

                                                                                                                                                      s1 p3 400 1

                                                                                                                                                      s4 p4 300 4

                                                                                                                                                      s2 p2 300 4

                                                                                                                                                      s1 p1 300 4

                                                                                                                                                      s4 p2 200 7

                                                                                                                                                      s1 p4 200 7

                                                                                                                                                      s1 p2 200 7

                                                                                                                                                      s4 p1 200 7

                                                                                                                                                      s1 p6 100 11

                                                                                                                                                      s1 p5 100 11

                                                                                                                                                      83

                                                                                                                                                      Rangs Denses(Dense Ranking)

                                                                                                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                      s p qtyD-rank

                                                                                                                                                      s1 p3 400 1

                                                                                                                                                      s3 p2 400 1

                                                                                                                                                      s4 p5 400 1

                                                                                                                                                      s1 p1 300 2

                                                                                                                                                      s2 p2 300 2

                                                                                                                                                      s4 p4 300 2

                                                                                                                                                      s1 p4 200 3

                                                                                                                                                      s1 p2 200 3

                                                                                                                                                      s4 p2 200 3

                                                                                                                                                      s4 p1 200 3

                                                                                                                                                      s1 p6 100 4

                                                                                                                                                      s1 p5 100 4

                                                                                                                                                      84

                                                                                                                                                      Rangs DensesGraphique MsAccess

                                                                                                                                                      s p qty D-rank

                                                                                                                                                      s1 p3 400 1

                                                                                                                                                      s3 p2 400 1

                                                                                                                                                      s4 p5 400 1

                                                                                                                                                      s1 p1 300 2

                                                                                                                                                      s2 p2 300 2

                                                                                                                                                      s4 p4 300 2

                                                                                                                                                      s1 p4 200 3

                                                                                                                                                      s1 p2 200 3

                                                                                                                                                      s4 p2 200 3

                                                                                                                                                      s4 p1 200 3

                                                                                                                                                      s1 p6 100 4

                                                                                                                                                      s1 p5 100 4

                                                                                                                                                      85

                                                                                                                                                      Distribution

                                                                                                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                      86

                                                                                                                                                      Reacutesultat

                                                                                                                                                      s Distribution

                                                                                                                                                      s1 0419

                                                                                                                                                      s2 0097

                                                                                                                                                      s3 0129

                                                                                                                                                      s4 0355

                                                                                                                                                      87

                                                                                                                                                      Distribution Cumulative

                                                                                                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                      FROM SP

                                                                                                                                                      ORDER BY SP[s]

                                                                                                                                                      88

                                                                                                                                                      Reacutesultat

                                                                                                                                                      sDistribution Cumuleacutee

                                                                                                                                                      s1 0419

                                                                                                                                                      s2 0516

                                                                                                                                                      s3 0645

                                                                                                                                                      s4 1

                                                                                                                                                      89

                                                                                                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                      90

                                                                                                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                      FROM S

                                                                                                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                      s1 Smith Paris good good

                                                                                                                                                      s2 Jones 100 london good VGood

                                                                                                                                                      s3 Blake 30 Paris good good

                                                                                                                                                      s4 Clark 10 london OK OK

                                                                                                                                                      s5 Adams 30 Athens good good

                                                                                                                                                      bull Notez le traitement du null

                                                                                                                                                      91

                                                                                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                      FROM P where weight gt 13

                                                                                                                                                      union

                                                                                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                      UNION

                                                                                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                      ORDER BY warning DESC weight DESC

                                                                                                                                                      pname weight Warning

                                                                                                                                                      cam 19 Very Heavy

                                                                                                                                                      cog 19 Very Heavy

                                                                                                                                                      bolt 17 Very Heavy

                                                                                                                                                      nut 14 Very Heavy

                                                                                                                                                      screw 14 Very Heavy

                                                                                                                                                      nut 14 Quite Heavy

                                                                                                                                                      screw 14 Quite Heavy

                                                                                                                                                      screw 12 Quite Heavy

                                                                                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                      92

                                                                                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                      SP

                                                                                                                                                      s p qtyQty1

                                                                                                                                                      s1 p1 300 400

                                                                                                                                                      s1 p2 200

                                                                                                                                                      s1 p3 400 600

                                                                                                                                                      s1 p4 200 300

                                                                                                                                                      s1 p5 100

                                                                                                                                                      s1 p6 100 200

                                                                                                                                                      s2 p2 300 500

                                                                                                                                                      s3 p2 400

                                                                                                                                                      s4 p1 200 100

                                                                                                                                                      s4 p2 200

                                                                                                                                                      s4 p4 300

                                                                                                                                                      s4 p5 400

                                                                                                                                                      93

                                                                                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                      SP

                                                                                                                                                      s p qtyQty1

                                                                                                                                                      s1 p1 300 400

                                                                                                                                                      s1 p2 200

                                                                                                                                                      s1 p3 400 600

                                                                                                                                                      s1 p4 200 300

                                                                                                                                                      s1 p5 100

                                                                                                                                                      s1 p6 100 200

                                                                                                                                                      s2 p2 300 500

                                                                                                                                                      s3 p2 400

                                                                                                                                                      s4 p1 200 100

                                                                                                                                                      s4 p2 200

                                                                                                                                                      s4 p4 300

                                                                                                                                                      s4 p5 400

                                                                                                                                                      qty for partpredicted or

                                                                                                                                                      unknown Qty1

                                                                                                                                                      100 p5

                                                                                                                                                      100 predicted value 200

                                                                                                                                                      200 p2

                                                                                                                                                      200 predicted value 200

                                                                                                                                                      300 p4

                                                                                                                                                      300 predicted value 450

                                                                                                                                                      400 p2

                                                                                                                                                      400 p5

                                                                                                                                                      400 predicted value 600

                                                                                                                                                      94

                                                                                                                                                      Tendance

                                                                                                                                                      qty Qty1

                                                                                                                                                      100 200

                                                                                                                                                      200 300

                                                                                                                                                      300 400

                                                                                                                                                      400 600

                                                                                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                      Graph 3D avec Qty en abscisses

                                                                                                                                                      95

                                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                      30102008 120 27102008 4

                                                                                                                                                      25102008 131 22102008 4

                                                                                                                                                      23102008 127 20102008 4

                                                                                                                                                      17102008 269 14102008 4

                                                                                                                                                      15102008 60 12102008 4

                                                                                                                                                      11102008 295 08102008 4

                                                                                                                                                      09102008 340 06102008 4

                                                                                                                                                      08102008 324 05102008 4

                                                                                                                                                      06102008 315 03102008 4

                                                                                                                                                      96

                                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                      Graphique avec une info-bulle

                                                                                                                                                      97

                                                                                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                      glissantes

                                                                                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                      bull MAVG

                                                                                                                                                      bull MSUM

                                                                                                                                                      bull MDIFF

                                                                                                                                                      bull Voir Teradata + loin

                                                                                                                                                      98

                                                                                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                      99

                                                                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                      100

                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                      capital taux nval apregraves n ans

                                                                                                                                                      taux1val1 apregraves n ans

                                                                                                                                                      GainAbs GainRel

                                                                                                                                                      100 005 1 105 006 106 1 1

                                                                                                                                                      100 005 2 110 006 112 2 2

                                                                                                                                                      100 005 3 115 006 119 4 4

                                                                                                                                                      100 005 4 121 006 126 5 5

                                                                                                                                                      100 005 5 127 006 133 6 6

                                                                                                                                                      100 005 6 134 006 141 7 7

                                                                                                                                                      100 005 7 140 006 150 10 10

                                                                                                                                                      100 005 8 147 006 159 12 12

                                                                                                                                                      100 005 9 155 006 168 13 13

                                                                                                                                                      100 005 10 162 006 179 17 17

                                                                                                                                                      100 005 11 171 006 189 18 18

                                                                                                                                                      100 005 12 179 006 201 22 22

                                                                                                                                                      100 005 13 188 006 213 25 25

                                                                                                                                                      100 005 14 197 006 226 29 29

                                                                                                                                                      100 005 15 207 006 239 32 32

                                                                                                                                                      100 005 16 218 006 254 36 36

                                                                                                                                                      100 005 17 229 006 269 40 40

                                                                                                                                                      100 005 18 240 006 285 45 45

                                                                                                                                                      100 005 19 252 006 302 50 50

                                                                                                                                                      100 005 20 265 006 320 55 55

                                                                                                                                                      101

                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                      102

                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                      financiers de la table Produits

                                                                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                      bull En ordre descendant de prix

                                                                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                      bull Plusieurs actionshellip

                                                                                                                                                      103

                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                      P prix

                                                                                                                                                      p3 200

                                                                                                                                                      p1 200

                                                                                                                                                      p2 400

                                                                                                                                                      p3 200

                                                                                                                                                      p4 100

                                                                                                                                                      p6 100

                                                                                                                                                      p5 300

                                                                                                                                                      p8 300

                                                                                                                                                      p7 400

                                                                                                                                                      p10 200

                                                                                                                                                      p12 300

                                                                                                                                                      p13 300

                                                                                                                                                      104

                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                      ORDER BY 4 desc 8 123

                                                                                                                                                      105

                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                      106

                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                      107

                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                      108

                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                      109

                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                      110

                                                                                                                                                      GROUPING SETS

                                                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                      HAVING tot-qty gt 100

                                                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                      111

                                                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                                                      112

                                                                                                                                                      ROLLUP

                                                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                                                      113

                                                                                                                                                      ROLLUP

                                                                                                                                                      114

                                                                                                                                                      ROLLUP

                                                                                                                                                      Et le CUBE

                                                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                                                      de certains nuls

                                                                                                                                                      115

                                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                      Wiley (publ)

                                                                                                                                                      116

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                      117

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                      118

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      119

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      120

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      121

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      122

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                      123

                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                      124

                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                      hellip

                                                                                                                                                      125

                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                      126

                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                      148

                                                                                                                                                      FIN

                                                                                                                                                      149

                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                      • Slide 3
                                                                                                                                                      • Synonymes
                                                                                                                                                      • Noms dattributs
                                                                                                                                                      • Slide 6
                                                                                                                                                      • Slide 7
                                                                                                                                                      • Slide 8
                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                      • Expressions de valeur
                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                      • Limitations de NOT
                                                                                                                                                      • ANY et ALL
                                                                                                                                                      • Injection SQL
                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                      • XOR
                                                                                                                                                      • IMP
                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                      • Valeurs nulles
                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                      • Fonction DDB
                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                      • Fonction PMT
                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                      • GROUP BY
                                                                                                                                                      • LIST Function
                                                                                                                                                      • LIST Function (2)
                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                      • T-GROUP BY
                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                      • Distribution
                                                                                                                                                      • Reacutesultat
                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                      • Tendance
                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                      • GROUPING SETS
                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                      • Slide 112
                                                                                                                                                      • Slide 113
                                                                                                                                                      • Slide 114
                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                      • FIN
                                                                                                                                                      • Slide 149

                                                                                                                                                        76

                                                                                                                                                        GROUP BY avec HAVING

                                                                                                                                                        La clause HAVING est eacutegalement redondanteSELECT PFROM SPGROUP BY P HAVING COUNT() gt 1

                                                                                                                                                        est eacutequivalent agraveSELECT DISTINCT P FROM SP WHERE (SELECT COUNT() FROM SP AS X WHERE XP = SPP) gt 1

                                                                                                                                                        Pourquoi Et si on ajoutait la clause WHERE S ltgt lsquo S1 rsquo

                                                                                                                                                        77

                                                                                                                                                        T-GROUP BY Proposeacute pour SQL

                                                                                                                                                        Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                                        Le rocircle de -join par rapport agrave equi-join

                                                                                                                                                        Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                                        INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                                        T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                                        donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                                        78

                                                                                                                                                        T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                        lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                        (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                        FROM SP Vrai ou Faux

                                                                                                                                                        79

                                                                                                                                                        T-GROUP BY

                                                                                                                                                        Reacutesultat

                                                                                                                                                        part avg_qty_other_parts part_avg_qty

                                                                                                                                                        p1 250 300

                                                                                                                                                        p2 262 250

                                                                                                                                                        p3 245 400

                                                                                                                                                        p4 260 250

                                                                                                                                                        p5 260 250

                                                                                                                                                        p6 272 100

                                                                                                                                                        80

                                                                                                                                                        T-GROUP BY

                                                                                                                                                        En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                        Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                        81

                                                                                                                                                        Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                        SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                        s p qtyND-rank

                                                                                                                                                        s4 p5 400 1

                                                                                                                                                        s3 p2 400 1

                                                                                                                                                        s1 p3 400 1

                                                                                                                                                        s4 p4 300 4

                                                                                                                                                        s2 p2 300 4

                                                                                                                                                        s1 p1 300 4

                                                                                                                                                        s4 p2 200 7

                                                                                                                                                        s1 p4 200 7

                                                                                                                                                        s1 p2 200 7

                                                                                                                                                        s4 p1 200 7

                                                                                                                                                        s1 p6 100 11

                                                                                                                                                        s1 p5 100 11

                                                                                                                                                        82

                                                                                                                                                        Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                        s p qty ND-rank

                                                                                                                                                        s4 p5 400 1

                                                                                                                                                        s3 p2 400 1

                                                                                                                                                        s1 p3 400 1

                                                                                                                                                        s4 p4 300 4

                                                                                                                                                        s2 p2 300 4

                                                                                                                                                        s1 p1 300 4

                                                                                                                                                        s4 p2 200 7

                                                                                                                                                        s1 p4 200 7

                                                                                                                                                        s1 p2 200 7

                                                                                                                                                        s4 p1 200 7

                                                                                                                                                        s1 p6 100 11

                                                                                                                                                        s1 p5 100 11

                                                                                                                                                        83

                                                                                                                                                        Rangs Denses(Dense Ranking)

                                                                                                                                                        SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                        s p qtyD-rank

                                                                                                                                                        s1 p3 400 1

                                                                                                                                                        s3 p2 400 1

                                                                                                                                                        s4 p5 400 1

                                                                                                                                                        s1 p1 300 2

                                                                                                                                                        s2 p2 300 2

                                                                                                                                                        s4 p4 300 2

                                                                                                                                                        s1 p4 200 3

                                                                                                                                                        s1 p2 200 3

                                                                                                                                                        s4 p2 200 3

                                                                                                                                                        s4 p1 200 3

                                                                                                                                                        s1 p6 100 4

                                                                                                                                                        s1 p5 100 4

                                                                                                                                                        84

                                                                                                                                                        Rangs DensesGraphique MsAccess

                                                                                                                                                        s p qty D-rank

                                                                                                                                                        s1 p3 400 1

                                                                                                                                                        s3 p2 400 1

                                                                                                                                                        s4 p5 400 1

                                                                                                                                                        s1 p1 300 2

                                                                                                                                                        s2 p2 300 2

                                                                                                                                                        s4 p4 300 2

                                                                                                                                                        s1 p4 200 3

                                                                                                                                                        s1 p2 200 3

                                                                                                                                                        s4 p2 200 3

                                                                                                                                                        s4 p1 200 3

                                                                                                                                                        s1 p6 100 4

                                                                                                                                                        s1 p5 100 4

                                                                                                                                                        85

                                                                                                                                                        Distribution

                                                                                                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                        86

                                                                                                                                                        Reacutesultat

                                                                                                                                                        s Distribution

                                                                                                                                                        s1 0419

                                                                                                                                                        s2 0097

                                                                                                                                                        s3 0129

                                                                                                                                                        s4 0355

                                                                                                                                                        87

                                                                                                                                                        Distribution Cumulative

                                                                                                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                        FROM SP

                                                                                                                                                        ORDER BY SP[s]

                                                                                                                                                        88

                                                                                                                                                        Reacutesultat

                                                                                                                                                        sDistribution Cumuleacutee

                                                                                                                                                        s1 0419

                                                                                                                                                        s2 0516

                                                                                                                                                        s3 0645

                                                                                                                                                        s4 1

                                                                                                                                                        89

                                                                                                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                        90

                                                                                                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                        FROM S

                                                                                                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                        s1 Smith Paris good good

                                                                                                                                                        s2 Jones 100 london good VGood

                                                                                                                                                        s3 Blake 30 Paris good good

                                                                                                                                                        s4 Clark 10 london OK OK

                                                                                                                                                        s5 Adams 30 Athens good good

                                                                                                                                                        bull Notez le traitement du null

                                                                                                                                                        91

                                                                                                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                        FROM P where weight gt 13

                                                                                                                                                        union

                                                                                                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                        UNION

                                                                                                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                        ORDER BY warning DESC weight DESC

                                                                                                                                                        pname weight Warning

                                                                                                                                                        cam 19 Very Heavy

                                                                                                                                                        cog 19 Very Heavy

                                                                                                                                                        bolt 17 Very Heavy

                                                                                                                                                        nut 14 Very Heavy

                                                                                                                                                        screw 14 Very Heavy

                                                                                                                                                        nut 14 Quite Heavy

                                                                                                                                                        screw 14 Quite Heavy

                                                                                                                                                        screw 12 Quite Heavy

                                                                                                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                        92

                                                                                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                        SP

                                                                                                                                                        s p qtyQty1

                                                                                                                                                        s1 p1 300 400

                                                                                                                                                        s1 p2 200

                                                                                                                                                        s1 p3 400 600

                                                                                                                                                        s1 p4 200 300

                                                                                                                                                        s1 p5 100

                                                                                                                                                        s1 p6 100 200

                                                                                                                                                        s2 p2 300 500

                                                                                                                                                        s3 p2 400

                                                                                                                                                        s4 p1 200 100

                                                                                                                                                        s4 p2 200

                                                                                                                                                        s4 p4 300

                                                                                                                                                        s4 p5 400

                                                                                                                                                        93

                                                                                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                        SP

                                                                                                                                                        s p qtyQty1

                                                                                                                                                        s1 p1 300 400

                                                                                                                                                        s1 p2 200

                                                                                                                                                        s1 p3 400 600

                                                                                                                                                        s1 p4 200 300

                                                                                                                                                        s1 p5 100

                                                                                                                                                        s1 p6 100 200

                                                                                                                                                        s2 p2 300 500

                                                                                                                                                        s3 p2 400

                                                                                                                                                        s4 p1 200 100

                                                                                                                                                        s4 p2 200

                                                                                                                                                        s4 p4 300

                                                                                                                                                        s4 p5 400

                                                                                                                                                        qty for partpredicted or

                                                                                                                                                        unknown Qty1

                                                                                                                                                        100 p5

                                                                                                                                                        100 predicted value 200

                                                                                                                                                        200 p2

                                                                                                                                                        200 predicted value 200

                                                                                                                                                        300 p4

                                                                                                                                                        300 predicted value 450

                                                                                                                                                        400 p2

                                                                                                                                                        400 p5

                                                                                                                                                        400 predicted value 600

                                                                                                                                                        94

                                                                                                                                                        Tendance

                                                                                                                                                        qty Qty1

                                                                                                                                                        100 200

                                                                                                                                                        200 300

                                                                                                                                                        300 400

                                                                                                                                                        400 600

                                                                                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                        Graph 3D avec Qty en abscisses

                                                                                                                                                        95

                                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                        30102008 120 27102008 4

                                                                                                                                                        25102008 131 22102008 4

                                                                                                                                                        23102008 127 20102008 4

                                                                                                                                                        17102008 269 14102008 4

                                                                                                                                                        15102008 60 12102008 4

                                                                                                                                                        11102008 295 08102008 4

                                                                                                                                                        09102008 340 06102008 4

                                                                                                                                                        08102008 324 05102008 4

                                                                                                                                                        06102008 315 03102008 4

                                                                                                                                                        96

                                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                        Graphique avec une info-bulle

                                                                                                                                                        97

                                                                                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                        glissantes

                                                                                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                        bull MAVG

                                                                                                                                                        bull MSUM

                                                                                                                                                        bull MDIFF

                                                                                                                                                        bull Voir Teradata + loin

                                                                                                                                                        98

                                                                                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                        99

                                                                                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                        100

                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                        capital taux nval apregraves n ans

                                                                                                                                                        taux1val1 apregraves n ans

                                                                                                                                                        GainAbs GainRel

                                                                                                                                                        100 005 1 105 006 106 1 1

                                                                                                                                                        100 005 2 110 006 112 2 2

                                                                                                                                                        100 005 3 115 006 119 4 4

                                                                                                                                                        100 005 4 121 006 126 5 5

                                                                                                                                                        100 005 5 127 006 133 6 6

                                                                                                                                                        100 005 6 134 006 141 7 7

                                                                                                                                                        100 005 7 140 006 150 10 10

                                                                                                                                                        100 005 8 147 006 159 12 12

                                                                                                                                                        100 005 9 155 006 168 13 13

                                                                                                                                                        100 005 10 162 006 179 17 17

                                                                                                                                                        100 005 11 171 006 189 18 18

                                                                                                                                                        100 005 12 179 006 201 22 22

                                                                                                                                                        100 005 13 188 006 213 25 25

                                                                                                                                                        100 005 14 197 006 226 29 29

                                                                                                                                                        100 005 15 207 006 239 32 32

                                                                                                                                                        100 005 16 218 006 254 36 36

                                                                                                                                                        100 005 17 229 006 269 40 40

                                                                                                                                                        100 005 18 240 006 285 45 45

                                                                                                                                                        100 005 19 252 006 302 50 50

                                                                                                                                                        100 005 20 265 006 320 55 55

                                                                                                                                                        101

                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                        102

                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                        financiers de la table Produits

                                                                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                        bull En ordre descendant de prix

                                                                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                        bull Plusieurs actionshellip

                                                                                                                                                        103

                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                        P prix

                                                                                                                                                        p3 200

                                                                                                                                                        p1 200

                                                                                                                                                        p2 400

                                                                                                                                                        p3 200

                                                                                                                                                        p4 100

                                                                                                                                                        p6 100

                                                                                                                                                        p5 300

                                                                                                                                                        p8 300

                                                                                                                                                        p7 400

                                                                                                                                                        p10 200

                                                                                                                                                        p12 300

                                                                                                                                                        p13 300

                                                                                                                                                        104

                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                        ORDER BY 4 desc 8 123

                                                                                                                                                        105

                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                        106

                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                        107

                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                        108

                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                        109

                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                        110

                                                                                                                                                        GROUPING SETS

                                                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                        HAVING tot-qty gt 100

                                                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                        111

                                                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                                                        112

                                                                                                                                                        ROLLUP

                                                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                                                        113

                                                                                                                                                        ROLLUP

                                                                                                                                                        114

                                                                                                                                                        ROLLUP

                                                                                                                                                        Et le CUBE

                                                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                                                        de certains nuls

                                                                                                                                                        115

                                                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                        Wiley (publ)

                                                                                                                                                        116

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                        117

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                        118

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        119

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        120

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        121

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        122

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                        123

                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                        Exeacutecution autonome

                                                                                                                                                        124

                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                        hellip

                                                                                                                                                        125

                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                        126

                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                        148

                                                                                                                                                        FIN

                                                                                                                                                        149

                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                        • Slide 3
                                                                                                                                                        • Synonymes
                                                                                                                                                        • Noms dattributs
                                                                                                                                                        • Slide 6
                                                                                                                                                        • Slide 7
                                                                                                                                                        • Slide 8
                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                        • Expressions de valeur
                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                        • Limitations de NOT
                                                                                                                                                        • ANY et ALL
                                                                                                                                                        • Injection SQL
                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                        • XOR
                                                                                                                                                        • IMP
                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                        • Valeurs nulles
                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                        • Fonction DDB
                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                        • Fonction PMT
                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                        • GROUP BY
                                                                                                                                                        • LIST Function
                                                                                                                                                        • LIST Function (2)
                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                        • T-GROUP BY
                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                        • Distribution
                                                                                                                                                        • Reacutesultat
                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                        • Tendance
                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                        • GROUPING SETS
                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                        • Slide 112
                                                                                                                                                        • Slide 113
                                                                                                                                                        • Slide 114
                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                        • FIN
                                                                                                                                                        • Slide 149

                                                                                                                                                          77

                                                                                                                                                          T-GROUP BY Proposeacute pour SQL

                                                                                                                                                          Permettrait de faire les groupes par rapport agrave ne lsquo=lsquo

                                                                                                                                                          Le rocircle de -join par rapport agrave equi-join

                                                                                                                                                          Ainsi la requecircte hypotheacutetiqueSELECT P AVG(QTY) AS QTY1

                                                                                                                                                          INT(AVG(QTY)) AS QTY2FROM SP

                                                                                                                                                          T-GROUP (QT1 BY P QT2 BY ltgt P)

                                                                                                                                                          donnerait la quantiteacute moyenne de toute piegravece autre que la piegravece P avec la quantiteacute moyenne de la piegravece P pour la comparaison eacuteloquente

                                                                                                                                                          78

                                                                                                                                                          T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                          lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                          (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                          FROM SP Vrai ou Faux

                                                                                                                                                          79

                                                                                                                                                          T-GROUP BY

                                                                                                                                                          Reacutesultat

                                                                                                                                                          part avg_qty_other_parts part_avg_qty

                                                                                                                                                          p1 250 300

                                                                                                                                                          p2 262 250

                                                                                                                                                          p3 245 400

                                                                                                                                                          p4 260 250

                                                                                                                                                          p5 260 250

                                                                                                                                                          p6 272 100

                                                                                                                                                          80

                                                                                                                                                          T-GROUP BY

                                                                                                                                                          En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                          Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                          81

                                                                                                                                                          Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                          SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                          s p qtyND-rank

                                                                                                                                                          s4 p5 400 1

                                                                                                                                                          s3 p2 400 1

                                                                                                                                                          s1 p3 400 1

                                                                                                                                                          s4 p4 300 4

                                                                                                                                                          s2 p2 300 4

                                                                                                                                                          s1 p1 300 4

                                                                                                                                                          s4 p2 200 7

                                                                                                                                                          s1 p4 200 7

                                                                                                                                                          s1 p2 200 7

                                                                                                                                                          s4 p1 200 7

                                                                                                                                                          s1 p6 100 11

                                                                                                                                                          s1 p5 100 11

                                                                                                                                                          82

                                                                                                                                                          Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                          s p qty ND-rank

                                                                                                                                                          s4 p5 400 1

                                                                                                                                                          s3 p2 400 1

                                                                                                                                                          s1 p3 400 1

                                                                                                                                                          s4 p4 300 4

                                                                                                                                                          s2 p2 300 4

                                                                                                                                                          s1 p1 300 4

                                                                                                                                                          s4 p2 200 7

                                                                                                                                                          s1 p4 200 7

                                                                                                                                                          s1 p2 200 7

                                                                                                                                                          s4 p1 200 7

                                                                                                                                                          s1 p6 100 11

                                                                                                                                                          s1 p5 100 11

                                                                                                                                                          83

                                                                                                                                                          Rangs Denses(Dense Ranking)

                                                                                                                                                          SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                          s p qtyD-rank

                                                                                                                                                          s1 p3 400 1

                                                                                                                                                          s3 p2 400 1

                                                                                                                                                          s4 p5 400 1

                                                                                                                                                          s1 p1 300 2

                                                                                                                                                          s2 p2 300 2

                                                                                                                                                          s4 p4 300 2

                                                                                                                                                          s1 p4 200 3

                                                                                                                                                          s1 p2 200 3

                                                                                                                                                          s4 p2 200 3

                                                                                                                                                          s4 p1 200 3

                                                                                                                                                          s1 p6 100 4

                                                                                                                                                          s1 p5 100 4

                                                                                                                                                          84

                                                                                                                                                          Rangs DensesGraphique MsAccess

                                                                                                                                                          s p qty D-rank

                                                                                                                                                          s1 p3 400 1

                                                                                                                                                          s3 p2 400 1

                                                                                                                                                          s4 p5 400 1

                                                                                                                                                          s1 p1 300 2

                                                                                                                                                          s2 p2 300 2

                                                                                                                                                          s4 p4 300 2

                                                                                                                                                          s1 p4 200 3

                                                                                                                                                          s1 p2 200 3

                                                                                                                                                          s4 p2 200 3

                                                                                                                                                          s4 p1 200 3

                                                                                                                                                          s1 p6 100 4

                                                                                                                                                          s1 p5 100 4

                                                                                                                                                          85

                                                                                                                                                          Distribution

                                                                                                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                          86

                                                                                                                                                          Reacutesultat

                                                                                                                                                          s Distribution

                                                                                                                                                          s1 0419

                                                                                                                                                          s2 0097

                                                                                                                                                          s3 0129

                                                                                                                                                          s4 0355

                                                                                                                                                          87

                                                                                                                                                          Distribution Cumulative

                                                                                                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                          FROM SP

                                                                                                                                                          ORDER BY SP[s]

                                                                                                                                                          88

                                                                                                                                                          Reacutesultat

                                                                                                                                                          sDistribution Cumuleacutee

                                                                                                                                                          s1 0419

                                                                                                                                                          s2 0516

                                                                                                                                                          s3 0645

                                                                                                                                                          s4 1

                                                                                                                                                          89

                                                                                                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                          90

                                                                                                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                          FROM S

                                                                                                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                          s1 Smith Paris good good

                                                                                                                                                          s2 Jones 100 london good VGood

                                                                                                                                                          s3 Blake 30 Paris good good

                                                                                                                                                          s4 Clark 10 london OK OK

                                                                                                                                                          s5 Adams 30 Athens good good

                                                                                                                                                          bull Notez le traitement du null

                                                                                                                                                          91

                                                                                                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                          FROM P where weight gt 13

                                                                                                                                                          union

                                                                                                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                          UNION

                                                                                                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                          ORDER BY warning DESC weight DESC

                                                                                                                                                          pname weight Warning

                                                                                                                                                          cam 19 Very Heavy

                                                                                                                                                          cog 19 Very Heavy

                                                                                                                                                          bolt 17 Very Heavy

                                                                                                                                                          nut 14 Very Heavy

                                                                                                                                                          screw 14 Very Heavy

                                                                                                                                                          nut 14 Quite Heavy

                                                                                                                                                          screw 14 Quite Heavy

                                                                                                                                                          screw 12 Quite Heavy

                                                                                                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                          92

                                                                                                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                          On considegravere AVG(Qty1) pour Qty

                                                                                                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                          SP

                                                                                                                                                          s p qtyQty1

                                                                                                                                                          s1 p1 300 400

                                                                                                                                                          s1 p2 200

                                                                                                                                                          s1 p3 400 600

                                                                                                                                                          s1 p4 200 300

                                                                                                                                                          s1 p5 100

                                                                                                                                                          s1 p6 100 200

                                                                                                                                                          s2 p2 300 500

                                                                                                                                                          s3 p2 400

                                                                                                                                                          s4 p1 200 100

                                                                                                                                                          s4 p2 200

                                                                                                                                                          s4 p4 300

                                                                                                                                                          s4 p5 400

                                                                                                                                                          93

                                                                                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                          SP

                                                                                                                                                          s p qtyQty1

                                                                                                                                                          s1 p1 300 400

                                                                                                                                                          s1 p2 200

                                                                                                                                                          s1 p3 400 600

                                                                                                                                                          s1 p4 200 300

                                                                                                                                                          s1 p5 100

                                                                                                                                                          s1 p6 100 200

                                                                                                                                                          s2 p2 300 500

                                                                                                                                                          s3 p2 400

                                                                                                                                                          s4 p1 200 100

                                                                                                                                                          s4 p2 200

                                                                                                                                                          s4 p4 300

                                                                                                                                                          s4 p5 400

                                                                                                                                                          qty for partpredicted or

                                                                                                                                                          unknown Qty1

                                                                                                                                                          100 p5

                                                                                                                                                          100 predicted value 200

                                                                                                                                                          200 p2

                                                                                                                                                          200 predicted value 200

                                                                                                                                                          300 p4

                                                                                                                                                          300 predicted value 450

                                                                                                                                                          400 p2

                                                                                                                                                          400 p5

                                                                                                                                                          400 predicted value 600

                                                                                                                                                          94

                                                                                                                                                          Tendance

                                                                                                                                                          qty Qty1

                                                                                                                                                          100 200

                                                                                                                                                          200 300

                                                                                                                                                          300 400

                                                                                                                                                          400 600

                                                                                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                          Graph 3D avec Qty en abscisses

                                                                                                                                                          95

                                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                          30102008 120 27102008 4

                                                                                                                                                          25102008 131 22102008 4

                                                                                                                                                          23102008 127 20102008 4

                                                                                                                                                          17102008 269 14102008 4

                                                                                                                                                          15102008 60 12102008 4

                                                                                                                                                          11102008 295 08102008 4

                                                                                                                                                          09102008 340 06102008 4

                                                                                                                                                          08102008 324 05102008 4

                                                                                                                                                          06102008 315 03102008 4

                                                                                                                                                          96

                                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                          Graphique avec une info-bulle

                                                                                                                                                          97

                                                                                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                          glissantes

                                                                                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                          bull MAVG

                                                                                                                                                          bull MSUM

                                                                                                                                                          bull MDIFF

                                                                                                                                                          bull Voir Teradata + loin

                                                                                                                                                          98

                                                                                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                          99

                                                                                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                          100

                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                          capital taux nval apregraves n ans

                                                                                                                                                          taux1val1 apregraves n ans

                                                                                                                                                          GainAbs GainRel

                                                                                                                                                          100 005 1 105 006 106 1 1

                                                                                                                                                          100 005 2 110 006 112 2 2

                                                                                                                                                          100 005 3 115 006 119 4 4

                                                                                                                                                          100 005 4 121 006 126 5 5

                                                                                                                                                          100 005 5 127 006 133 6 6

                                                                                                                                                          100 005 6 134 006 141 7 7

                                                                                                                                                          100 005 7 140 006 150 10 10

                                                                                                                                                          100 005 8 147 006 159 12 12

                                                                                                                                                          100 005 9 155 006 168 13 13

                                                                                                                                                          100 005 10 162 006 179 17 17

                                                                                                                                                          100 005 11 171 006 189 18 18

                                                                                                                                                          100 005 12 179 006 201 22 22

                                                                                                                                                          100 005 13 188 006 213 25 25

                                                                                                                                                          100 005 14 197 006 226 29 29

                                                                                                                                                          100 005 15 207 006 239 32 32

                                                                                                                                                          100 005 16 218 006 254 36 36

                                                                                                                                                          100 005 17 229 006 269 40 40

                                                                                                                                                          100 005 18 240 006 285 45 45

                                                                                                                                                          100 005 19 252 006 302 50 50

                                                                                                                                                          100 005 20 265 006 320 55 55

                                                                                                                                                          101

                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                          102

                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                          financiers de la table Produits

                                                                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                          bull En ordre descendant de prix

                                                                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                          bull Plusieurs actionshellip

                                                                                                                                                          103

                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                          P prix

                                                                                                                                                          p3 200

                                                                                                                                                          p1 200

                                                                                                                                                          p2 400

                                                                                                                                                          p3 200

                                                                                                                                                          p4 100

                                                                                                                                                          p6 100

                                                                                                                                                          p5 300

                                                                                                                                                          p8 300

                                                                                                                                                          p7 400

                                                                                                                                                          p10 200

                                                                                                                                                          p12 300

                                                                                                                                                          p13 300

                                                                                                                                                          104

                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                          ORDER BY 4 desc 8 123

                                                                                                                                                          105

                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                          106

                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                          107

                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                          108

                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                          109

                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                          110

                                                                                                                                                          GROUPING SETS

                                                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                          HAVING tot-qty gt 100

                                                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                          111

                                                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                                                          112

                                                                                                                                                          ROLLUP

                                                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                                                          113

                                                                                                                                                          ROLLUP

                                                                                                                                                          114

                                                                                                                                                          ROLLUP

                                                                                                                                                          Et le CUBE

                                                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                                                          de certains nuls

                                                                                                                                                          115

                                                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                          Wiley (publ)

                                                                                                                                                          116

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                          117

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                          118

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          119

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          120

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          121

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          122

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                          123

                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                          Exeacutecution autonome

                                                                                                                                                          124

                                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                          hellip

                                                                                                                                                          125

                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                          126

                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                          148

                                                                                                                                                          FIN

                                                                                                                                                          149

                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                          • Slide 3
                                                                                                                                                          • Synonymes
                                                                                                                                                          • Noms dattributs
                                                                                                                                                          • Slide 6
                                                                                                                                                          • Slide 7
                                                                                                                                                          • Slide 8
                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                          • Expressions de valeur
                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                          • Limitations de NOT
                                                                                                                                                          • ANY et ALL
                                                                                                                                                          • Injection SQL
                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                          • XOR
                                                                                                                                                          • IMP
                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                          • Valeurs nulles
                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                          • Fonction DDB
                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                          • Fonction PMT
                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                          • GROUP BY
                                                                                                                                                          • LIST Function
                                                                                                                                                          • LIST Function (2)
                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                          • T-GROUP BY
                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                          • Distribution
                                                                                                                                                          • Reacutesultat
                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                          • Tendance
                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                          • GROUPING SETS
                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                          • Slide 112
                                                                                                                                                          • Slide 113
                                                                                                                                                          • Slide 114
                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                          • FIN
                                                                                                                                                          • Slide 149

                                                                                                                                                            78

                                                                                                                                                            T-GROUP BY On peut reacutealiser la requecircte preacuteceacutedente agrave

                                                                                                                                                            lrsquoheure actuelle sous MsAccess commeSELECT DISTINCT SP[p] AS part

                                                                                                                                                            (SELECT int(avg(QTY)) FROM SP AS X WHERE X[P] ltgt SP[P]) AS avg_qty_other_parts(SELECT avg(QTY) FROM SP AS X WHERE X[P] = SP[P]) AS part_avg_qty

                                                                                                                                                            FROM SP Vrai ou Faux

                                                                                                                                                            79

                                                                                                                                                            T-GROUP BY

                                                                                                                                                            Reacutesultat

                                                                                                                                                            part avg_qty_other_parts part_avg_qty

                                                                                                                                                            p1 250 300

                                                                                                                                                            p2 262 250

                                                                                                                                                            p3 245 400

                                                                                                                                                            p4 260 250

                                                                                                                                                            p5 260 250

                                                                                                                                                            p6 272 100

                                                                                                                                                            80

                                                                                                                                                            T-GROUP BY

                                                                                                                                                            En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                            Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                            81

                                                                                                                                                            Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                            SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                            s p qtyND-rank

                                                                                                                                                            s4 p5 400 1

                                                                                                                                                            s3 p2 400 1

                                                                                                                                                            s1 p3 400 1

                                                                                                                                                            s4 p4 300 4

                                                                                                                                                            s2 p2 300 4

                                                                                                                                                            s1 p1 300 4

                                                                                                                                                            s4 p2 200 7

                                                                                                                                                            s1 p4 200 7

                                                                                                                                                            s1 p2 200 7

                                                                                                                                                            s4 p1 200 7

                                                                                                                                                            s1 p6 100 11

                                                                                                                                                            s1 p5 100 11

                                                                                                                                                            82

                                                                                                                                                            Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                            s p qty ND-rank

                                                                                                                                                            s4 p5 400 1

                                                                                                                                                            s3 p2 400 1

                                                                                                                                                            s1 p3 400 1

                                                                                                                                                            s4 p4 300 4

                                                                                                                                                            s2 p2 300 4

                                                                                                                                                            s1 p1 300 4

                                                                                                                                                            s4 p2 200 7

                                                                                                                                                            s1 p4 200 7

                                                                                                                                                            s1 p2 200 7

                                                                                                                                                            s4 p1 200 7

                                                                                                                                                            s1 p6 100 11

                                                                                                                                                            s1 p5 100 11

                                                                                                                                                            83

                                                                                                                                                            Rangs Denses(Dense Ranking)

                                                                                                                                                            SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                            s p qtyD-rank

                                                                                                                                                            s1 p3 400 1

                                                                                                                                                            s3 p2 400 1

                                                                                                                                                            s4 p5 400 1

                                                                                                                                                            s1 p1 300 2

                                                                                                                                                            s2 p2 300 2

                                                                                                                                                            s4 p4 300 2

                                                                                                                                                            s1 p4 200 3

                                                                                                                                                            s1 p2 200 3

                                                                                                                                                            s4 p2 200 3

                                                                                                                                                            s4 p1 200 3

                                                                                                                                                            s1 p6 100 4

                                                                                                                                                            s1 p5 100 4

                                                                                                                                                            84

                                                                                                                                                            Rangs DensesGraphique MsAccess

                                                                                                                                                            s p qty D-rank

                                                                                                                                                            s1 p3 400 1

                                                                                                                                                            s3 p2 400 1

                                                                                                                                                            s4 p5 400 1

                                                                                                                                                            s1 p1 300 2

                                                                                                                                                            s2 p2 300 2

                                                                                                                                                            s4 p4 300 2

                                                                                                                                                            s1 p4 200 3

                                                                                                                                                            s1 p2 200 3

                                                                                                                                                            s4 p2 200 3

                                                                                                                                                            s4 p1 200 3

                                                                                                                                                            s1 p6 100 4

                                                                                                                                                            s1 p5 100 4

                                                                                                                                                            85

                                                                                                                                                            Distribution

                                                                                                                                                            La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                            86

                                                                                                                                                            Reacutesultat

                                                                                                                                                            s Distribution

                                                                                                                                                            s1 0419

                                                                                                                                                            s2 0097

                                                                                                                                                            s3 0129

                                                                                                                                                            s4 0355

                                                                                                                                                            87

                                                                                                                                                            Distribution Cumulative

                                                                                                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                            FROM SP

                                                                                                                                                            ORDER BY SP[s]

                                                                                                                                                            88

                                                                                                                                                            Reacutesultat

                                                                                                                                                            sDistribution Cumuleacutee

                                                                                                                                                            s1 0419

                                                                                                                                                            s2 0516

                                                                                                                                                            s3 0645

                                                                                                                                                            s4 1

                                                                                                                                                            89

                                                                                                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                            90

                                                                                                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                            FROM S

                                                                                                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                            s1 Smith Paris good good

                                                                                                                                                            s2 Jones 100 london good VGood

                                                                                                                                                            s3 Blake 30 Paris good good

                                                                                                                                                            s4 Clark 10 london OK OK

                                                                                                                                                            s5 Adams 30 Athens good good

                                                                                                                                                            bull Notez le traitement du null

                                                                                                                                                            91

                                                                                                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                            FROM P where weight gt 13

                                                                                                                                                            union

                                                                                                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                            UNION

                                                                                                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                            ORDER BY warning DESC weight DESC

                                                                                                                                                            pname weight Warning

                                                                                                                                                            cam 19 Very Heavy

                                                                                                                                                            cog 19 Very Heavy

                                                                                                                                                            bolt 17 Very Heavy

                                                                                                                                                            nut 14 Very Heavy

                                                                                                                                                            screw 14 Very Heavy

                                                                                                                                                            nut 14 Quite Heavy

                                                                                                                                                            screw 14 Quite Heavy

                                                                                                                                                            screw 12 Quite Heavy

                                                                                                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                            92

                                                                                                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                            On considegravere AVG(Qty1) pour Qty

                                                                                                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                            SP

                                                                                                                                                            s p qtyQty1

                                                                                                                                                            s1 p1 300 400

                                                                                                                                                            s1 p2 200

                                                                                                                                                            s1 p3 400 600

                                                                                                                                                            s1 p4 200 300

                                                                                                                                                            s1 p5 100

                                                                                                                                                            s1 p6 100 200

                                                                                                                                                            s2 p2 300 500

                                                                                                                                                            s3 p2 400

                                                                                                                                                            s4 p1 200 100

                                                                                                                                                            s4 p2 200

                                                                                                                                                            s4 p4 300

                                                                                                                                                            s4 p5 400

                                                                                                                                                            93

                                                                                                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                            SP

                                                                                                                                                            s p qtyQty1

                                                                                                                                                            s1 p1 300 400

                                                                                                                                                            s1 p2 200

                                                                                                                                                            s1 p3 400 600

                                                                                                                                                            s1 p4 200 300

                                                                                                                                                            s1 p5 100

                                                                                                                                                            s1 p6 100 200

                                                                                                                                                            s2 p2 300 500

                                                                                                                                                            s3 p2 400

                                                                                                                                                            s4 p1 200 100

                                                                                                                                                            s4 p2 200

                                                                                                                                                            s4 p4 300

                                                                                                                                                            s4 p5 400

                                                                                                                                                            qty for partpredicted or

                                                                                                                                                            unknown Qty1

                                                                                                                                                            100 p5

                                                                                                                                                            100 predicted value 200

                                                                                                                                                            200 p2

                                                                                                                                                            200 predicted value 200

                                                                                                                                                            300 p4

                                                                                                                                                            300 predicted value 450

                                                                                                                                                            400 p2

                                                                                                                                                            400 p5

                                                                                                                                                            400 predicted value 600

                                                                                                                                                            94

                                                                                                                                                            Tendance

                                                                                                                                                            qty Qty1

                                                                                                                                                            100 200

                                                                                                                                                            200 300

                                                                                                                                                            300 400

                                                                                                                                                            400 600

                                                                                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                            Graph 3D avec Qty en abscisses

                                                                                                                                                            95

                                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                            30102008 120 27102008 4

                                                                                                                                                            25102008 131 22102008 4

                                                                                                                                                            23102008 127 20102008 4

                                                                                                                                                            17102008 269 14102008 4

                                                                                                                                                            15102008 60 12102008 4

                                                                                                                                                            11102008 295 08102008 4

                                                                                                                                                            09102008 340 06102008 4

                                                                                                                                                            08102008 324 05102008 4

                                                                                                                                                            06102008 315 03102008 4

                                                                                                                                                            96

                                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                            Graphique avec une info-bulle

                                                                                                                                                            97

                                                                                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                            glissantes

                                                                                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                            bull MAVG

                                                                                                                                                            bull MSUM

                                                                                                                                                            bull MDIFF

                                                                                                                                                            bull Voir Teradata + loin

                                                                                                                                                            98

                                                                                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                            99

                                                                                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                            100

                                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                                            capital taux nval apregraves n ans

                                                                                                                                                            taux1val1 apregraves n ans

                                                                                                                                                            GainAbs GainRel

                                                                                                                                                            100 005 1 105 006 106 1 1

                                                                                                                                                            100 005 2 110 006 112 2 2

                                                                                                                                                            100 005 3 115 006 119 4 4

                                                                                                                                                            100 005 4 121 006 126 5 5

                                                                                                                                                            100 005 5 127 006 133 6 6

                                                                                                                                                            100 005 6 134 006 141 7 7

                                                                                                                                                            100 005 7 140 006 150 10 10

                                                                                                                                                            100 005 8 147 006 159 12 12

                                                                                                                                                            100 005 9 155 006 168 13 13

                                                                                                                                                            100 005 10 162 006 179 17 17

                                                                                                                                                            100 005 11 171 006 189 18 18

                                                                                                                                                            100 005 12 179 006 201 22 22

                                                                                                                                                            100 005 13 188 006 213 25 25

                                                                                                                                                            100 005 14 197 006 226 29 29

                                                                                                                                                            100 005 15 207 006 239 32 32

                                                                                                                                                            100 005 16 218 006 254 36 36

                                                                                                                                                            100 005 17 229 006 269 40 40

                                                                                                                                                            100 005 18 240 006 285 45 45

                                                                                                                                                            100 005 19 252 006 302 50 50

                                                                                                                                                            100 005 20 265 006 320 55 55

                                                                                                                                                            101

                                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                                            102

                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                            financiers de la table Produits

                                                                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                            bull En ordre descendant de prix

                                                                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                            bull Plusieurs actionshellip

                                                                                                                                                            103

                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                            P prix

                                                                                                                                                            p3 200

                                                                                                                                                            p1 200

                                                                                                                                                            p2 400

                                                                                                                                                            p3 200

                                                                                                                                                            p4 100

                                                                                                                                                            p6 100

                                                                                                                                                            p5 300

                                                                                                                                                            p8 300

                                                                                                                                                            p7 400

                                                                                                                                                            p10 200

                                                                                                                                                            p12 300

                                                                                                                                                            p13 300

                                                                                                                                                            104

                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                            ORDER BY 4 desc 8 123

                                                                                                                                                            105

                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                            106

                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                            107

                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                            108

                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                            109

                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                            110

                                                                                                                                                            GROUPING SETS

                                                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                            HAVING tot-qty gt 100

                                                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                            111

                                                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                                                            112

                                                                                                                                                            ROLLUP

                                                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                                                            113

                                                                                                                                                            ROLLUP

                                                                                                                                                            114

                                                                                                                                                            ROLLUP

                                                                                                                                                            Et le CUBE

                                                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                                                            de certains nuls

                                                                                                                                                            115

                                                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                            Wiley (publ)

                                                                                                                                                            116

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                            117

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                            118

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            119

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            120

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            121

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            122

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                            123

                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                            Exeacutecution autonome

                                                                                                                                                            124

                                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                            hellip

                                                                                                                                                            125

                                                                                                                                                            Liste de Choix Multibase

                                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                            126

                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                            148

                                                                                                                                                            FIN

                                                                                                                                                            149

                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                            • Slide 3
                                                                                                                                                            • Synonymes
                                                                                                                                                            • Noms dattributs
                                                                                                                                                            • Slide 6
                                                                                                                                                            • Slide 7
                                                                                                                                                            • Slide 8
                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                            • Expressions de valeur
                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                            • Limitations de NOT
                                                                                                                                                            • ANY et ALL
                                                                                                                                                            • Injection SQL
                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                            • XOR
                                                                                                                                                            • IMP
                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                            • Valeurs nulles
                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                            • Fonction DDB
                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                            • Fonction PMT
                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                            • GROUP BY
                                                                                                                                                            • LIST Function
                                                                                                                                                            • LIST Function (2)
                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                            • T-GROUP BY
                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                            • Distribution
                                                                                                                                                            • Reacutesultat
                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                            • Tendance
                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                            • GROUPING SETS
                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                            • Slide 112
                                                                                                                                                            • Slide 113
                                                                                                                                                            • Slide 114
                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                            • FIN
                                                                                                                                                            • Slide 149

                                                                                                                                                              79

                                                                                                                                                              T-GROUP BY

                                                                                                                                                              Reacutesultat

                                                                                                                                                              part avg_qty_other_parts part_avg_qty

                                                                                                                                                              p1 250 300

                                                                                                                                                              p2 262 250

                                                                                                                                                              p3 245 400

                                                                                                                                                              p4 260 250

                                                                                                                                                              p5 260 250

                                                                                                                                                              p6 272 100

                                                                                                                                                              80

                                                                                                                                                              T-GROUP BY

                                                                                                                                                              En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                              Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                              81

                                                                                                                                                              Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                              SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                              s p qtyND-rank

                                                                                                                                                              s4 p5 400 1

                                                                                                                                                              s3 p2 400 1

                                                                                                                                                              s1 p3 400 1

                                                                                                                                                              s4 p4 300 4

                                                                                                                                                              s2 p2 300 4

                                                                                                                                                              s1 p1 300 4

                                                                                                                                                              s4 p2 200 7

                                                                                                                                                              s1 p4 200 7

                                                                                                                                                              s1 p2 200 7

                                                                                                                                                              s4 p1 200 7

                                                                                                                                                              s1 p6 100 11

                                                                                                                                                              s1 p5 100 11

                                                                                                                                                              82

                                                                                                                                                              Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                              s p qty ND-rank

                                                                                                                                                              s4 p5 400 1

                                                                                                                                                              s3 p2 400 1

                                                                                                                                                              s1 p3 400 1

                                                                                                                                                              s4 p4 300 4

                                                                                                                                                              s2 p2 300 4

                                                                                                                                                              s1 p1 300 4

                                                                                                                                                              s4 p2 200 7

                                                                                                                                                              s1 p4 200 7

                                                                                                                                                              s1 p2 200 7

                                                                                                                                                              s4 p1 200 7

                                                                                                                                                              s1 p6 100 11

                                                                                                                                                              s1 p5 100 11

                                                                                                                                                              83

                                                                                                                                                              Rangs Denses(Dense Ranking)

                                                                                                                                                              SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                              s p qtyD-rank

                                                                                                                                                              s1 p3 400 1

                                                                                                                                                              s3 p2 400 1

                                                                                                                                                              s4 p5 400 1

                                                                                                                                                              s1 p1 300 2

                                                                                                                                                              s2 p2 300 2

                                                                                                                                                              s4 p4 300 2

                                                                                                                                                              s1 p4 200 3

                                                                                                                                                              s1 p2 200 3

                                                                                                                                                              s4 p2 200 3

                                                                                                                                                              s4 p1 200 3

                                                                                                                                                              s1 p6 100 4

                                                                                                                                                              s1 p5 100 4

                                                                                                                                                              84

                                                                                                                                                              Rangs DensesGraphique MsAccess

                                                                                                                                                              s p qty D-rank

                                                                                                                                                              s1 p3 400 1

                                                                                                                                                              s3 p2 400 1

                                                                                                                                                              s4 p5 400 1

                                                                                                                                                              s1 p1 300 2

                                                                                                                                                              s2 p2 300 2

                                                                                                                                                              s4 p4 300 2

                                                                                                                                                              s1 p4 200 3

                                                                                                                                                              s1 p2 200 3

                                                                                                                                                              s4 p2 200 3

                                                                                                                                                              s4 p1 200 3

                                                                                                                                                              s1 p6 100 4

                                                                                                                                                              s1 p5 100 4

                                                                                                                                                              85

                                                                                                                                                              Distribution

                                                                                                                                                              La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                              86

                                                                                                                                                              Reacutesultat

                                                                                                                                                              s Distribution

                                                                                                                                                              s1 0419

                                                                                                                                                              s2 0097

                                                                                                                                                              s3 0129

                                                                                                                                                              s4 0355

                                                                                                                                                              87

                                                                                                                                                              Distribution Cumulative

                                                                                                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                              FROM SP

                                                                                                                                                              ORDER BY SP[s]

                                                                                                                                                              88

                                                                                                                                                              Reacutesultat

                                                                                                                                                              sDistribution Cumuleacutee

                                                                                                                                                              s1 0419

                                                                                                                                                              s2 0516

                                                                                                                                                              s3 0645

                                                                                                                                                              s4 1

                                                                                                                                                              89

                                                                                                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                              90

                                                                                                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                              FROM S

                                                                                                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                              s1 Smith Paris good good

                                                                                                                                                              s2 Jones 100 london good VGood

                                                                                                                                                              s3 Blake 30 Paris good good

                                                                                                                                                              s4 Clark 10 london OK OK

                                                                                                                                                              s5 Adams 30 Athens good good

                                                                                                                                                              bull Notez le traitement du null

                                                                                                                                                              91

                                                                                                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                              FROM P where weight gt 13

                                                                                                                                                              union

                                                                                                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                              UNION

                                                                                                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                              ORDER BY warning DESC weight DESC

                                                                                                                                                              pname weight Warning

                                                                                                                                                              cam 19 Very Heavy

                                                                                                                                                              cog 19 Very Heavy

                                                                                                                                                              bolt 17 Very Heavy

                                                                                                                                                              nut 14 Very Heavy

                                                                                                                                                              screw 14 Very Heavy

                                                                                                                                                              nut 14 Quite Heavy

                                                                                                                                                              screw 14 Quite Heavy

                                                                                                                                                              screw 12 Quite Heavy

                                                                                                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                              92

                                                                                                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                              On considegravere AVG(Qty1) pour Qty

                                                                                                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                              SP

                                                                                                                                                              s p qtyQty1

                                                                                                                                                              s1 p1 300 400

                                                                                                                                                              s1 p2 200

                                                                                                                                                              s1 p3 400 600

                                                                                                                                                              s1 p4 200 300

                                                                                                                                                              s1 p5 100

                                                                                                                                                              s1 p6 100 200

                                                                                                                                                              s2 p2 300 500

                                                                                                                                                              s3 p2 400

                                                                                                                                                              s4 p1 200 100

                                                                                                                                                              s4 p2 200

                                                                                                                                                              s4 p4 300

                                                                                                                                                              s4 p5 400

                                                                                                                                                              93

                                                                                                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                              SP

                                                                                                                                                              s p qtyQty1

                                                                                                                                                              s1 p1 300 400

                                                                                                                                                              s1 p2 200

                                                                                                                                                              s1 p3 400 600

                                                                                                                                                              s1 p4 200 300

                                                                                                                                                              s1 p5 100

                                                                                                                                                              s1 p6 100 200

                                                                                                                                                              s2 p2 300 500

                                                                                                                                                              s3 p2 400

                                                                                                                                                              s4 p1 200 100

                                                                                                                                                              s4 p2 200

                                                                                                                                                              s4 p4 300

                                                                                                                                                              s4 p5 400

                                                                                                                                                              qty for partpredicted or

                                                                                                                                                              unknown Qty1

                                                                                                                                                              100 p5

                                                                                                                                                              100 predicted value 200

                                                                                                                                                              200 p2

                                                                                                                                                              200 predicted value 200

                                                                                                                                                              300 p4

                                                                                                                                                              300 predicted value 450

                                                                                                                                                              400 p2

                                                                                                                                                              400 p5

                                                                                                                                                              400 predicted value 600

                                                                                                                                                              94

                                                                                                                                                              Tendance

                                                                                                                                                              qty Qty1

                                                                                                                                                              100 200

                                                                                                                                                              200 300

                                                                                                                                                              300 400

                                                                                                                                                              400 600

                                                                                                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                              Graph 3D avec Qty en abscisses

                                                                                                                                                              95

                                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                              30102008 120 27102008 4

                                                                                                                                                              25102008 131 22102008 4

                                                                                                                                                              23102008 127 20102008 4

                                                                                                                                                              17102008 269 14102008 4

                                                                                                                                                              15102008 60 12102008 4

                                                                                                                                                              11102008 295 08102008 4

                                                                                                                                                              09102008 340 06102008 4

                                                                                                                                                              08102008 324 05102008 4

                                                                                                                                                              06102008 315 03102008 4

                                                                                                                                                              96

                                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                              Graphique avec une info-bulle

                                                                                                                                                              97

                                                                                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                              glissantes

                                                                                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                              bull MAVG

                                                                                                                                                              bull MSUM

                                                                                                                                                              bull MDIFF

                                                                                                                                                              bull Voir Teradata + loin

                                                                                                                                                              98

                                                                                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                              99

                                                                                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                              100

                                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                                              capital taux nval apregraves n ans

                                                                                                                                                              taux1val1 apregraves n ans

                                                                                                                                                              GainAbs GainRel

                                                                                                                                                              100 005 1 105 006 106 1 1

                                                                                                                                                              100 005 2 110 006 112 2 2

                                                                                                                                                              100 005 3 115 006 119 4 4

                                                                                                                                                              100 005 4 121 006 126 5 5

                                                                                                                                                              100 005 5 127 006 133 6 6

                                                                                                                                                              100 005 6 134 006 141 7 7

                                                                                                                                                              100 005 7 140 006 150 10 10

                                                                                                                                                              100 005 8 147 006 159 12 12

                                                                                                                                                              100 005 9 155 006 168 13 13

                                                                                                                                                              100 005 10 162 006 179 17 17

                                                                                                                                                              100 005 11 171 006 189 18 18

                                                                                                                                                              100 005 12 179 006 201 22 22

                                                                                                                                                              100 005 13 188 006 213 25 25

                                                                                                                                                              100 005 14 197 006 226 29 29

                                                                                                                                                              100 005 15 207 006 239 32 32

                                                                                                                                                              100 005 16 218 006 254 36 36

                                                                                                                                                              100 005 17 229 006 269 40 40

                                                                                                                                                              100 005 18 240 006 285 45 45

                                                                                                                                                              100 005 19 252 006 302 50 50

                                                                                                                                                              100 005 20 265 006 320 55 55

                                                                                                                                                              101

                                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                                              102

                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                              financiers de la table Produits

                                                                                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                              bull En ordre descendant de prix

                                                                                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                              bull Plusieurs actionshellip

                                                                                                                                                              103

                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                              P prix

                                                                                                                                                              p3 200

                                                                                                                                                              p1 200

                                                                                                                                                              p2 400

                                                                                                                                                              p3 200

                                                                                                                                                              p4 100

                                                                                                                                                              p6 100

                                                                                                                                                              p5 300

                                                                                                                                                              p8 300

                                                                                                                                                              p7 400

                                                                                                                                                              p10 200

                                                                                                                                                              p12 300

                                                                                                                                                              p13 300

                                                                                                                                                              104

                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                              ORDER BY 4 desc 8 123

                                                                                                                                                              105

                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                              106

                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                              107

                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                              108

                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                              109

                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                              110

                                                                                                                                                              GROUPING SETS

                                                                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                              HAVING tot-qty gt 100

                                                                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                              111

                                                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                                                              112

                                                                                                                                                              ROLLUP

                                                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                                                              113

                                                                                                                                                              ROLLUP

                                                                                                                                                              114

                                                                                                                                                              ROLLUP

                                                                                                                                                              Et le CUBE

                                                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                                                              de certains nuls

                                                                                                                                                              115

                                                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                              Wiley (publ)

                                                                                                                                                              116

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                              117

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                              118

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              119

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              120

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              121

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              122

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                              123

                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                              Exeacutecution autonome

                                                                                                                                                              124

                                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                              hellip

                                                                                                                                                              125

                                                                                                                                                              Liste de Choix Multibase

                                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                              126

                                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                                              148

                                                                                                                                                              FIN

                                                                                                                                                              149

                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                              • Slide 3
                                                                                                                                                              • Synonymes
                                                                                                                                                              • Noms dattributs
                                                                                                                                                              • Slide 6
                                                                                                                                                              • Slide 7
                                                                                                                                                              • Slide 8
                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                              • Expressions de valeur
                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                              • Limitations de NOT
                                                                                                                                                              • ANY et ALL
                                                                                                                                                              • Injection SQL
                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                              • XOR
                                                                                                                                                              • IMP
                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                              • Valeurs nulles
                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                              • Fonction DDB
                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                              • Fonction PMT
                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                              • GROUP BY
                                                                                                                                                              • LIST Function
                                                                                                                                                              • LIST Function (2)
                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                              • T-GROUP BY
                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                              • Distribution
                                                                                                                                                              • Reacutesultat
                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                              • Tendance
                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                              • GROUPING SETS
                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                              • Slide 112
                                                                                                                                                              • Slide 113
                                                                                                                                                              • Slide 114
                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                              • FIN
                                                                                                                                                              • Slide 149

                                                                                                                                                                80

                                                                                                                                                                T-GROUP BY

                                                                                                                                                                En savoir + ndash Litwin W Galois Connections T-CUBES amp P2P

                                                                                                                                                                Database Mining 3rd Intl Workshop on Databases Information Systems and Peer-to-Peer Computing (DBISP2P 2005) VLDB 2005Springer Verlag (publ)

                                                                                                                                                                81

                                                                                                                                                                Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                                SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                                s p qtyND-rank

                                                                                                                                                                s4 p5 400 1

                                                                                                                                                                s3 p2 400 1

                                                                                                                                                                s1 p3 400 1

                                                                                                                                                                s4 p4 300 4

                                                                                                                                                                s2 p2 300 4

                                                                                                                                                                s1 p1 300 4

                                                                                                                                                                s4 p2 200 7

                                                                                                                                                                s1 p4 200 7

                                                                                                                                                                s1 p2 200 7

                                                                                                                                                                s4 p1 200 7

                                                                                                                                                                s1 p6 100 11

                                                                                                                                                                s1 p5 100 11

                                                                                                                                                                82

                                                                                                                                                                Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                                s p qty ND-rank

                                                                                                                                                                s4 p5 400 1

                                                                                                                                                                s3 p2 400 1

                                                                                                                                                                s1 p3 400 1

                                                                                                                                                                s4 p4 300 4

                                                                                                                                                                s2 p2 300 4

                                                                                                                                                                s1 p1 300 4

                                                                                                                                                                s4 p2 200 7

                                                                                                                                                                s1 p4 200 7

                                                                                                                                                                s1 p2 200 7

                                                                                                                                                                s4 p1 200 7

                                                                                                                                                                s1 p6 100 11

                                                                                                                                                                s1 p5 100 11

                                                                                                                                                                83

                                                                                                                                                                Rangs Denses(Dense Ranking)

                                                                                                                                                                SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                                s p qtyD-rank

                                                                                                                                                                s1 p3 400 1

                                                                                                                                                                s3 p2 400 1

                                                                                                                                                                s4 p5 400 1

                                                                                                                                                                s1 p1 300 2

                                                                                                                                                                s2 p2 300 2

                                                                                                                                                                s4 p4 300 2

                                                                                                                                                                s1 p4 200 3

                                                                                                                                                                s1 p2 200 3

                                                                                                                                                                s4 p2 200 3

                                                                                                                                                                s4 p1 200 3

                                                                                                                                                                s1 p6 100 4

                                                                                                                                                                s1 p5 100 4

                                                                                                                                                                84

                                                                                                                                                                Rangs DensesGraphique MsAccess

                                                                                                                                                                s p qty D-rank

                                                                                                                                                                s1 p3 400 1

                                                                                                                                                                s3 p2 400 1

                                                                                                                                                                s4 p5 400 1

                                                                                                                                                                s1 p1 300 2

                                                                                                                                                                s2 p2 300 2

                                                                                                                                                                s4 p4 300 2

                                                                                                                                                                s1 p4 200 3

                                                                                                                                                                s1 p2 200 3

                                                                                                                                                                s4 p2 200 3

                                                                                                                                                                s4 p1 200 3

                                                                                                                                                                s1 p6 100 4

                                                                                                                                                                s1 p5 100 4

                                                                                                                                                                85

                                                                                                                                                                Distribution

                                                                                                                                                                La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                                86

                                                                                                                                                                Reacutesultat

                                                                                                                                                                s Distribution

                                                                                                                                                                s1 0419

                                                                                                                                                                s2 0097

                                                                                                                                                                s3 0129

                                                                                                                                                                s4 0355

                                                                                                                                                                87

                                                                                                                                                                Distribution Cumulative

                                                                                                                                                                La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                FROM SP

                                                                                                                                                                ORDER BY SP[s]

                                                                                                                                                                88

                                                                                                                                                                Reacutesultat

                                                                                                                                                                sDistribution Cumuleacutee

                                                                                                                                                                s1 0419

                                                                                                                                                                s2 0516

                                                                                                                                                                s3 0645

                                                                                                                                                                s4 1

                                                                                                                                                                89

                                                                                                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                90

                                                                                                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                FROM S

                                                                                                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                s1 Smith Paris good good

                                                                                                                                                                s2 Jones 100 london good VGood

                                                                                                                                                                s3 Blake 30 Paris good good

                                                                                                                                                                s4 Clark 10 london OK OK

                                                                                                                                                                s5 Adams 30 Athens good good

                                                                                                                                                                bull Notez le traitement du null

                                                                                                                                                                91

                                                                                                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                FROM P where weight gt 13

                                                                                                                                                                union

                                                                                                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                UNION

                                                                                                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                ORDER BY warning DESC weight DESC

                                                                                                                                                                pname weight Warning

                                                                                                                                                                cam 19 Very Heavy

                                                                                                                                                                cog 19 Very Heavy

                                                                                                                                                                bolt 17 Very Heavy

                                                                                                                                                                nut 14 Very Heavy

                                                                                                                                                                screw 14 Very Heavy

                                                                                                                                                                nut 14 Quite Heavy

                                                                                                                                                                screw 14 Quite Heavy

                                                                                                                                                                screw 12 Quite Heavy

                                                                                                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                92

                                                                                                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                SP

                                                                                                                                                                s p qtyQty1

                                                                                                                                                                s1 p1 300 400

                                                                                                                                                                s1 p2 200

                                                                                                                                                                s1 p3 400 600

                                                                                                                                                                s1 p4 200 300

                                                                                                                                                                s1 p5 100

                                                                                                                                                                s1 p6 100 200

                                                                                                                                                                s2 p2 300 500

                                                                                                                                                                s3 p2 400

                                                                                                                                                                s4 p1 200 100

                                                                                                                                                                s4 p2 200

                                                                                                                                                                s4 p4 300

                                                                                                                                                                s4 p5 400

                                                                                                                                                                93

                                                                                                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                SP

                                                                                                                                                                s p qtyQty1

                                                                                                                                                                s1 p1 300 400

                                                                                                                                                                s1 p2 200

                                                                                                                                                                s1 p3 400 600

                                                                                                                                                                s1 p4 200 300

                                                                                                                                                                s1 p5 100

                                                                                                                                                                s1 p6 100 200

                                                                                                                                                                s2 p2 300 500

                                                                                                                                                                s3 p2 400

                                                                                                                                                                s4 p1 200 100

                                                                                                                                                                s4 p2 200

                                                                                                                                                                s4 p4 300

                                                                                                                                                                s4 p5 400

                                                                                                                                                                qty for partpredicted or

                                                                                                                                                                unknown Qty1

                                                                                                                                                                100 p5

                                                                                                                                                                100 predicted value 200

                                                                                                                                                                200 p2

                                                                                                                                                                200 predicted value 200

                                                                                                                                                                300 p4

                                                                                                                                                                300 predicted value 450

                                                                                                                                                                400 p2

                                                                                                                                                                400 p5

                                                                                                                                                                400 predicted value 600

                                                                                                                                                                94

                                                                                                                                                                Tendance

                                                                                                                                                                qty Qty1

                                                                                                                                                                100 200

                                                                                                                                                                200 300

                                                                                                                                                                300 400

                                                                                                                                                                400 600

                                                                                                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                Graph 3D avec Qty en abscisses

                                                                                                                                                                95

                                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                30102008 120 27102008 4

                                                                                                                                                                25102008 131 22102008 4

                                                                                                                                                                23102008 127 20102008 4

                                                                                                                                                                17102008 269 14102008 4

                                                                                                                                                                15102008 60 12102008 4

                                                                                                                                                                11102008 295 08102008 4

                                                                                                                                                                09102008 340 06102008 4

                                                                                                                                                                08102008 324 05102008 4

                                                                                                                                                                06102008 315 03102008 4

                                                                                                                                                                96

                                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                Graphique avec une info-bulle

                                                                                                                                                                97

                                                                                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                glissantes

                                                                                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                bull MAVG

                                                                                                                                                                bull MSUM

                                                                                                                                                                bull MDIFF

                                                                                                                                                                bull Voir Teradata + loin

                                                                                                                                                                98

                                                                                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                99

                                                                                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                100

                                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                                capital taux nval apregraves n ans

                                                                                                                                                                taux1val1 apregraves n ans

                                                                                                                                                                GainAbs GainRel

                                                                                                                                                                100 005 1 105 006 106 1 1

                                                                                                                                                                100 005 2 110 006 112 2 2

                                                                                                                                                                100 005 3 115 006 119 4 4

                                                                                                                                                                100 005 4 121 006 126 5 5

                                                                                                                                                                100 005 5 127 006 133 6 6

                                                                                                                                                                100 005 6 134 006 141 7 7

                                                                                                                                                                100 005 7 140 006 150 10 10

                                                                                                                                                                100 005 8 147 006 159 12 12

                                                                                                                                                                100 005 9 155 006 168 13 13

                                                                                                                                                                100 005 10 162 006 179 17 17

                                                                                                                                                                100 005 11 171 006 189 18 18

                                                                                                                                                                100 005 12 179 006 201 22 22

                                                                                                                                                                100 005 13 188 006 213 25 25

                                                                                                                                                                100 005 14 197 006 226 29 29

                                                                                                                                                                100 005 15 207 006 239 32 32

                                                                                                                                                                100 005 16 218 006 254 36 36

                                                                                                                                                                100 005 17 229 006 269 40 40

                                                                                                                                                                100 005 18 240 006 285 45 45

                                                                                                                                                                100 005 19 252 006 302 50 50

                                                                                                                                                                100 005 20 265 006 320 55 55

                                                                                                                                                                101

                                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                                102

                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                financiers de la table Produits

                                                                                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                bull En ordre descendant de prix

                                                                                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                bull Plusieurs actionshellip

                                                                                                                                                                103

                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                P prix

                                                                                                                                                                p3 200

                                                                                                                                                                p1 200

                                                                                                                                                                p2 400

                                                                                                                                                                p3 200

                                                                                                                                                                p4 100

                                                                                                                                                                p6 100

                                                                                                                                                                p5 300

                                                                                                                                                                p8 300

                                                                                                                                                                p7 400

                                                                                                                                                                p10 200

                                                                                                                                                                p12 300

                                                                                                                                                                p13 300

                                                                                                                                                                104

                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                                                                105

                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                106

                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                107

                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                108

                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                109

                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                110

                                                                                                                                                                GROUPING SETS

                                                                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                HAVING tot-qty gt 100

                                                                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                111

                                                                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                112

                                                                                                                                                                ROLLUP

                                                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                                                113

                                                                                                                                                                ROLLUP

                                                                                                                                                                114

                                                                                                                                                                ROLLUP

                                                                                                                                                                Et le CUBE

                                                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                                                de certains nuls

                                                                                                                                                                115

                                                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                Wiley (publ)

                                                                                                                                                                116

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                117

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                118

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                119

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                120

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                121

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                122

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                123

                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                Exeacutecution autonome

                                                                                                                                                                124

                                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                hellip

                                                                                                                                                                125

                                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                126

                                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                                148

                                                                                                                                                                FIN

                                                                                                                                                                149

                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                • Slide 3
                                                                                                                                                                • Synonymes
                                                                                                                                                                • Noms dattributs
                                                                                                                                                                • Slide 6
                                                                                                                                                                • Slide 7
                                                                                                                                                                • Slide 8
                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                • ANY et ALL
                                                                                                                                                                • Injection SQL
                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                • XOR
                                                                                                                                                                • IMP
                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                • Fonction DDB
                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                • Fonction PMT
                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                • GROUP BY
                                                                                                                                                                • LIST Function
                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                • Distribution
                                                                                                                                                                • Reacutesultat
                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                • Tendance
                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                • Slide 112
                                                                                                                                                                • Slide 113
                                                                                                                                                                • Slide 114
                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                • FIN
                                                                                                                                                                • Slide 149

                                                                                                                                                                  81

                                                                                                                                                                  Rangs Non-Denses(Non Dense Ranking)

                                                                                                                                                                  SELECT [s] [p] (select count() from SP as X where Xqty gt spqty)+1 as [non dense rank] qtyFROM SP order by qty desc [s] asc

                                                                                                                                                                  s p qtyND-rank

                                                                                                                                                                  s4 p5 400 1

                                                                                                                                                                  s3 p2 400 1

                                                                                                                                                                  s1 p3 400 1

                                                                                                                                                                  s4 p4 300 4

                                                                                                                                                                  s2 p2 300 4

                                                                                                                                                                  s1 p1 300 4

                                                                                                                                                                  s4 p2 200 7

                                                                                                                                                                  s1 p4 200 7

                                                                                                                                                                  s1 p2 200 7

                                                                                                                                                                  s4 p1 200 7

                                                                                                                                                                  s1 p6 100 11

                                                                                                                                                                  s1 p5 100 11

                                                                                                                                                                  82

                                                                                                                                                                  Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                                  s p qty ND-rank

                                                                                                                                                                  s4 p5 400 1

                                                                                                                                                                  s3 p2 400 1

                                                                                                                                                                  s1 p3 400 1

                                                                                                                                                                  s4 p4 300 4

                                                                                                                                                                  s2 p2 300 4

                                                                                                                                                                  s1 p1 300 4

                                                                                                                                                                  s4 p2 200 7

                                                                                                                                                                  s1 p4 200 7

                                                                                                                                                                  s1 p2 200 7

                                                                                                                                                                  s4 p1 200 7

                                                                                                                                                                  s1 p6 100 11

                                                                                                                                                                  s1 p5 100 11

                                                                                                                                                                  83

                                                                                                                                                                  Rangs Denses(Dense Ranking)

                                                                                                                                                                  SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                                  s p qtyD-rank

                                                                                                                                                                  s1 p3 400 1

                                                                                                                                                                  s3 p2 400 1

                                                                                                                                                                  s4 p5 400 1

                                                                                                                                                                  s1 p1 300 2

                                                                                                                                                                  s2 p2 300 2

                                                                                                                                                                  s4 p4 300 2

                                                                                                                                                                  s1 p4 200 3

                                                                                                                                                                  s1 p2 200 3

                                                                                                                                                                  s4 p2 200 3

                                                                                                                                                                  s4 p1 200 3

                                                                                                                                                                  s1 p6 100 4

                                                                                                                                                                  s1 p5 100 4

                                                                                                                                                                  84

                                                                                                                                                                  Rangs DensesGraphique MsAccess

                                                                                                                                                                  s p qty D-rank

                                                                                                                                                                  s1 p3 400 1

                                                                                                                                                                  s3 p2 400 1

                                                                                                                                                                  s4 p5 400 1

                                                                                                                                                                  s1 p1 300 2

                                                                                                                                                                  s2 p2 300 2

                                                                                                                                                                  s4 p4 300 2

                                                                                                                                                                  s1 p4 200 3

                                                                                                                                                                  s1 p2 200 3

                                                                                                                                                                  s4 p2 200 3

                                                                                                                                                                  s4 p1 200 3

                                                                                                                                                                  s1 p6 100 4

                                                                                                                                                                  s1 p5 100 4

                                                                                                                                                                  85

                                                                                                                                                                  Distribution

                                                                                                                                                                  La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                                  86

                                                                                                                                                                  Reacutesultat

                                                                                                                                                                  s Distribution

                                                                                                                                                                  s1 0419

                                                                                                                                                                  s2 0097

                                                                                                                                                                  s3 0129

                                                                                                                                                                  s4 0355

                                                                                                                                                                  87

                                                                                                                                                                  Distribution Cumulative

                                                                                                                                                                  La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                  SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                  FROM SP

                                                                                                                                                                  ORDER BY SP[s]

                                                                                                                                                                  88

                                                                                                                                                                  Reacutesultat

                                                                                                                                                                  sDistribution Cumuleacutee

                                                                                                                                                                  s1 0419

                                                                                                                                                                  s2 0516

                                                                                                                                                                  s3 0645

                                                                                                                                                                  s4 1

                                                                                                                                                                  89

                                                                                                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                  90

                                                                                                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                  FROM S

                                                                                                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                  s1 Smith Paris good good

                                                                                                                                                                  s2 Jones 100 london good VGood

                                                                                                                                                                  s3 Blake 30 Paris good good

                                                                                                                                                                  s4 Clark 10 london OK OK

                                                                                                                                                                  s5 Adams 30 Athens good good

                                                                                                                                                                  bull Notez le traitement du null

                                                                                                                                                                  91

                                                                                                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                  FROM P where weight gt 13

                                                                                                                                                                  union

                                                                                                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                  UNION

                                                                                                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                  ORDER BY warning DESC weight DESC

                                                                                                                                                                  pname weight Warning

                                                                                                                                                                  cam 19 Very Heavy

                                                                                                                                                                  cog 19 Very Heavy

                                                                                                                                                                  bolt 17 Very Heavy

                                                                                                                                                                  nut 14 Very Heavy

                                                                                                                                                                  screw 14 Very Heavy

                                                                                                                                                                  nut 14 Quite Heavy

                                                                                                                                                                  screw 14 Quite Heavy

                                                                                                                                                                  screw 12 Quite Heavy

                                                                                                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                  92

                                                                                                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                  SP

                                                                                                                                                                  s p qtyQty1

                                                                                                                                                                  s1 p1 300 400

                                                                                                                                                                  s1 p2 200

                                                                                                                                                                  s1 p3 400 600

                                                                                                                                                                  s1 p4 200 300

                                                                                                                                                                  s1 p5 100

                                                                                                                                                                  s1 p6 100 200

                                                                                                                                                                  s2 p2 300 500

                                                                                                                                                                  s3 p2 400

                                                                                                                                                                  s4 p1 200 100

                                                                                                                                                                  s4 p2 200

                                                                                                                                                                  s4 p4 300

                                                                                                                                                                  s4 p5 400

                                                                                                                                                                  93

                                                                                                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                  SP

                                                                                                                                                                  s p qtyQty1

                                                                                                                                                                  s1 p1 300 400

                                                                                                                                                                  s1 p2 200

                                                                                                                                                                  s1 p3 400 600

                                                                                                                                                                  s1 p4 200 300

                                                                                                                                                                  s1 p5 100

                                                                                                                                                                  s1 p6 100 200

                                                                                                                                                                  s2 p2 300 500

                                                                                                                                                                  s3 p2 400

                                                                                                                                                                  s4 p1 200 100

                                                                                                                                                                  s4 p2 200

                                                                                                                                                                  s4 p4 300

                                                                                                                                                                  s4 p5 400

                                                                                                                                                                  qty for partpredicted or

                                                                                                                                                                  unknown Qty1

                                                                                                                                                                  100 p5

                                                                                                                                                                  100 predicted value 200

                                                                                                                                                                  200 p2

                                                                                                                                                                  200 predicted value 200

                                                                                                                                                                  300 p4

                                                                                                                                                                  300 predicted value 450

                                                                                                                                                                  400 p2

                                                                                                                                                                  400 p5

                                                                                                                                                                  400 predicted value 600

                                                                                                                                                                  94

                                                                                                                                                                  Tendance

                                                                                                                                                                  qty Qty1

                                                                                                                                                                  100 200

                                                                                                                                                                  200 300

                                                                                                                                                                  300 400

                                                                                                                                                                  400 600

                                                                                                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                  Graph 3D avec Qty en abscisses

                                                                                                                                                                  95

                                                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                  30102008 120 27102008 4

                                                                                                                                                                  25102008 131 22102008 4

                                                                                                                                                                  23102008 127 20102008 4

                                                                                                                                                                  17102008 269 14102008 4

                                                                                                                                                                  15102008 60 12102008 4

                                                                                                                                                                  11102008 295 08102008 4

                                                                                                                                                                  09102008 340 06102008 4

                                                                                                                                                                  08102008 324 05102008 4

                                                                                                                                                                  06102008 315 03102008 4

                                                                                                                                                                  96

                                                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                  Graphique avec une info-bulle

                                                                                                                                                                  97

                                                                                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                  glissantes

                                                                                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                  bull MAVG

                                                                                                                                                                  bull MSUM

                                                                                                                                                                  bull MDIFF

                                                                                                                                                                  bull Voir Teradata + loin

                                                                                                                                                                  98

                                                                                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                  99

                                                                                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                  100

                                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                                  capital taux nval apregraves n ans

                                                                                                                                                                  taux1val1 apregraves n ans

                                                                                                                                                                  GainAbs GainRel

                                                                                                                                                                  100 005 1 105 006 106 1 1

                                                                                                                                                                  100 005 2 110 006 112 2 2

                                                                                                                                                                  100 005 3 115 006 119 4 4

                                                                                                                                                                  100 005 4 121 006 126 5 5

                                                                                                                                                                  100 005 5 127 006 133 6 6

                                                                                                                                                                  100 005 6 134 006 141 7 7

                                                                                                                                                                  100 005 7 140 006 150 10 10

                                                                                                                                                                  100 005 8 147 006 159 12 12

                                                                                                                                                                  100 005 9 155 006 168 13 13

                                                                                                                                                                  100 005 10 162 006 179 17 17

                                                                                                                                                                  100 005 11 171 006 189 18 18

                                                                                                                                                                  100 005 12 179 006 201 22 22

                                                                                                                                                                  100 005 13 188 006 213 25 25

                                                                                                                                                                  100 005 14 197 006 226 29 29

                                                                                                                                                                  100 005 15 207 006 239 32 32

                                                                                                                                                                  100 005 16 218 006 254 36 36

                                                                                                                                                                  100 005 17 229 006 269 40 40

                                                                                                                                                                  100 005 18 240 006 285 45 45

                                                                                                                                                                  100 005 19 252 006 302 50 50

                                                                                                                                                                  100 005 20 265 006 320 55 55

                                                                                                                                                                  101

                                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                                  102

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                  financiers de la table Produits

                                                                                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                  bull En ordre descendant de prix

                                                                                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                  bull Plusieurs actionshellip

                                                                                                                                                                  103

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                  P prix

                                                                                                                                                                  p3 200

                                                                                                                                                                  p1 200

                                                                                                                                                                  p2 400

                                                                                                                                                                  p3 200

                                                                                                                                                                  p4 100

                                                                                                                                                                  p6 100

                                                                                                                                                                  p5 300

                                                                                                                                                                  p8 300

                                                                                                                                                                  p7 400

                                                                                                                                                                  p10 200

                                                                                                                                                                  p12 300

                                                                                                                                                                  p13 300

                                                                                                                                                                  104

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                  ORDER BY 4 desc 8 123

                                                                                                                                                                  105

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                  106

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                  107

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                  108

                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                  109

                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                  110

                                                                                                                                                                  GROUPING SETS

                                                                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                  HAVING tot-qty gt 100

                                                                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                  111

                                                                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                  112

                                                                                                                                                                  ROLLUP

                                                                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                                                                  113

                                                                                                                                                                  ROLLUP

                                                                                                                                                                  114

                                                                                                                                                                  ROLLUP

                                                                                                                                                                  Et le CUBE

                                                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                                                  de certains nuls

                                                                                                                                                                  115

                                                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                  Wiley (publ)

                                                                                                                                                                  116

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                  117

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                  118

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  119

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  120

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  121

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  122

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                  123

                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                                  124

                                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                  hellip

                                                                                                                                                                  125

                                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                  126

                                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                                  148

                                                                                                                                                                  FIN

                                                                                                                                                                  149

                                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                                  • Slide 3
                                                                                                                                                                  • Synonymes
                                                                                                                                                                  • Noms dattributs
                                                                                                                                                                  • Slide 6
                                                                                                                                                                  • Slide 7
                                                                                                                                                                  • Slide 8
                                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                                  • Expressions de valeur
                                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                                  • Limitations de NOT
                                                                                                                                                                  • ANY et ALL
                                                                                                                                                                  • Injection SQL
                                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                                  • XOR
                                                                                                                                                                  • IMP
                                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                                  • Valeurs nulles
                                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                                  • Fonction DDB
                                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                                  • Fonction PMT
                                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                                  • GROUP BY
                                                                                                                                                                  • LIST Function
                                                                                                                                                                  • LIST Function (2)
                                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                                  • T-GROUP BY
                                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                                  • Distribution
                                                                                                                                                                  • Reacutesultat
                                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                  • Tendance
                                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                  • GROUPING SETS
                                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                  • Slide 112
                                                                                                                                                                  • Slide 113
                                                                                                                                                                  • Slide 114
                                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                  • FIN
                                                                                                                                                                  • Slide 149

                                                                                                                                                                    82

                                                                                                                                                                    Rangs Non-Denses(Graphique MsAccess)

                                                                                                                                                                    s p qty ND-rank

                                                                                                                                                                    s4 p5 400 1

                                                                                                                                                                    s3 p2 400 1

                                                                                                                                                                    s1 p3 400 1

                                                                                                                                                                    s4 p4 300 4

                                                                                                                                                                    s2 p2 300 4

                                                                                                                                                                    s1 p1 300 4

                                                                                                                                                                    s4 p2 200 7

                                                                                                                                                                    s1 p4 200 7

                                                                                                                                                                    s1 p2 200 7

                                                                                                                                                                    s4 p1 200 7

                                                                                                                                                                    s1 p6 100 11

                                                                                                                                                                    s1 p5 100 11

                                                                                                                                                                    83

                                                                                                                                                                    Rangs Denses(Dense Ranking)

                                                                                                                                                                    SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                                    s p qtyD-rank

                                                                                                                                                                    s1 p3 400 1

                                                                                                                                                                    s3 p2 400 1

                                                                                                                                                                    s4 p5 400 1

                                                                                                                                                                    s1 p1 300 2

                                                                                                                                                                    s2 p2 300 2

                                                                                                                                                                    s4 p4 300 2

                                                                                                                                                                    s1 p4 200 3

                                                                                                                                                                    s1 p2 200 3

                                                                                                                                                                    s4 p2 200 3

                                                                                                                                                                    s4 p1 200 3

                                                                                                                                                                    s1 p6 100 4

                                                                                                                                                                    s1 p5 100 4

                                                                                                                                                                    84

                                                                                                                                                                    Rangs DensesGraphique MsAccess

                                                                                                                                                                    s p qty D-rank

                                                                                                                                                                    s1 p3 400 1

                                                                                                                                                                    s3 p2 400 1

                                                                                                                                                                    s4 p5 400 1

                                                                                                                                                                    s1 p1 300 2

                                                                                                                                                                    s2 p2 300 2

                                                                                                                                                                    s4 p4 300 2

                                                                                                                                                                    s1 p4 200 3

                                                                                                                                                                    s1 p2 200 3

                                                                                                                                                                    s4 p2 200 3

                                                                                                                                                                    s4 p1 200 3

                                                                                                                                                                    s1 p6 100 4

                                                                                                                                                                    s1 p5 100 4

                                                                                                                                                                    85

                                                                                                                                                                    Distribution

                                                                                                                                                                    La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                                    86

                                                                                                                                                                    Reacutesultat

                                                                                                                                                                    s Distribution

                                                                                                                                                                    s1 0419

                                                                                                                                                                    s2 0097

                                                                                                                                                                    s3 0129

                                                                                                                                                                    s4 0355

                                                                                                                                                                    87

                                                                                                                                                                    Distribution Cumulative

                                                                                                                                                                    La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                    SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                    FROM SP

                                                                                                                                                                    ORDER BY SP[s]

                                                                                                                                                                    88

                                                                                                                                                                    Reacutesultat

                                                                                                                                                                    sDistribution Cumuleacutee

                                                                                                                                                                    s1 0419

                                                                                                                                                                    s2 0516

                                                                                                                                                                    s3 0645

                                                                                                                                                                    s4 1

                                                                                                                                                                    89

                                                                                                                                                                    Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                    plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                    - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                    - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                    - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                    90

                                                                                                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                    FROM S

                                                                                                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                    s1 Smith Paris good good

                                                                                                                                                                    s2 Jones 100 london good VGood

                                                                                                                                                                    s3 Blake 30 Paris good good

                                                                                                                                                                    s4 Clark 10 london OK OK

                                                                                                                                                                    s5 Adams 30 Athens good good

                                                                                                                                                                    bull Notez le traitement du null

                                                                                                                                                                    91

                                                                                                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                    FROM P where weight gt 13

                                                                                                                                                                    union

                                                                                                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                    UNION

                                                                                                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                    ORDER BY warning DESC weight DESC

                                                                                                                                                                    pname weight Warning

                                                                                                                                                                    cam 19 Very Heavy

                                                                                                                                                                    cog 19 Very Heavy

                                                                                                                                                                    bolt 17 Very Heavy

                                                                                                                                                                    nut 14 Very Heavy

                                                                                                                                                                    screw 14 Very Heavy

                                                                                                                                                                    nut 14 Quite Heavy

                                                                                                                                                                    screw 14 Quite Heavy

                                                                                                                                                                    screw 12 Quite Heavy

                                                                                                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                    92

                                                                                                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                    SP

                                                                                                                                                                    s p qtyQty1

                                                                                                                                                                    s1 p1 300 400

                                                                                                                                                                    s1 p2 200

                                                                                                                                                                    s1 p3 400 600

                                                                                                                                                                    s1 p4 200 300

                                                                                                                                                                    s1 p5 100

                                                                                                                                                                    s1 p6 100 200

                                                                                                                                                                    s2 p2 300 500

                                                                                                                                                                    s3 p2 400

                                                                                                                                                                    s4 p1 200 100

                                                                                                                                                                    s4 p2 200

                                                                                                                                                                    s4 p4 300

                                                                                                                                                                    s4 p5 400

                                                                                                                                                                    93

                                                                                                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                    SP

                                                                                                                                                                    s p qtyQty1

                                                                                                                                                                    s1 p1 300 400

                                                                                                                                                                    s1 p2 200

                                                                                                                                                                    s1 p3 400 600

                                                                                                                                                                    s1 p4 200 300

                                                                                                                                                                    s1 p5 100

                                                                                                                                                                    s1 p6 100 200

                                                                                                                                                                    s2 p2 300 500

                                                                                                                                                                    s3 p2 400

                                                                                                                                                                    s4 p1 200 100

                                                                                                                                                                    s4 p2 200

                                                                                                                                                                    s4 p4 300

                                                                                                                                                                    s4 p5 400

                                                                                                                                                                    qty for partpredicted or

                                                                                                                                                                    unknown Qty1

                                                                                                                                                                    100 p5

                                                                                                                                                                    100 predicted value 200

                                                                                                                                                                    200 p2

                                                                                                                                                                    200 predicted value 200

                                                                                                                                                                    300 p4

                                                                                                                                                                    300 predicted value 450

                                                                                                                                                                    400 p2

                                                                                                                                                                    400 p5

                                                                                                                                                                    400 predicted value 600

                                                                                                                                                                    94

                                                                                                                                                                    Tendance

                                                                                                                                                                    qty Qty1

                                                                                                                                                                    100 200

                                                                                                                                                                    200 300

                                                                                                                                                                    300 400

                                                                                                                                                                    400 600

                                                                                                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                    Graph 3D avec Qty en abscisses

                                                                                                                                                                    95

                                                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                    30102008 120 27102008 4

                                                                                                                                                                    25102008 131 22102008 4

                                                                                                                                                                    23102008 127 20102008 4

                                                                                                                                                                    17102008 269 14102008 4

                                                                                                                                                                    15102008 60 12102008 4

                                                                                                                                                                    11102008 295 08102008 4

                                                                                                                                                                    09102008 340 06102008 4

                                                                                                                                                                    08102008 324 05102008 4

                                                                                                                                                                    06102008 315 03102008 4

                                                                                                                                                                    96

                                                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                    Graphique avec une info-bulle

                                                                                                                                                                    97

                                                                                                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                    glissantes

                                                                                                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                    bull MAVG

                                                                                                                                                                    bull MSUM

                                                                                                                                                                    bull MDIFF

                                                                                                                                                                    bull Voir Teradata + loin

                                                                                                                                                                    98

                                                                                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                    99

                                                                                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                    100

                                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                                    capital taux nval apregraves n ans

                                                                                                                                                                    taux1val1 apregraves n ans

                                                                                                                                                                    GainAbs GainRel

                                                                                                                                                                    100 005 1 105 006 106 1 1

                                                                                                                                                                    100 005 2 110 006 112 2 2

                                                                                                                                                                    100 005 3 115 006 119 4 4

                                                                                                                                                                    100 005 4 121 006 126 5 5

                                                                                                                                                                    100 005 5 127 006 133 6 6

                                                                                                                                                                    100 005 6 134 006 141 7 7

                                                                                                                                                                    100 005 7 140 006 150 10 10

                                                                                                                                                                    100 005 8 147 006 159 12 12

                                                                                                                                                                    100 005 9 155 006 168 13 13

                                                                                                                                                                    100 005 10 162 006 179 17 17

                                                                                                                                                                    100 005 11 171 006 189 18 18

                                                                                                                                                                    100 005 12 179 006 201 22 22

                                                                                                                                                                    100 005 13 188 006 213 25 25

                                                                                                                                                                    100 005 14 197 006 226 29 29

                                                                                                                                                                    100 005 15 207 006 239 32 32

                                                                                                                                                                    100 005 16 218 006 254 36 36

                                                                                                                                                                    100 005 17 229 006 269 40 40

                                                                                                                                                                    100 005 18 240 006 285 45 45

                                                                                                                                                                    100 005 19 252 006 302 50 50

                                                                                                                                                                    100 005 20 265 006 320 55 55

                                                                                                                                                                    101

                                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                                    102

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                    financiers de la table Produits

                                                                                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                    bull En ordre descendant de prix

                                                                                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                    bull Plusieurs actionshellip

                                                                                                                                                                    103

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                    P prix

                                                                                                                                                                    p3 200

                                                                                                                                                                    p1 200

                                                                                                                                                                    p2 400

                                                                                                                                                                    p3 200

                                                                                                                                                                    p4 100

                                                                                                                                                                    p6 100

                                                                                                                                                                    p5 300

                                                                                                                                                                    p8 300

                                                                                                                                                                    p7 400

                                                                                                                                                                    p10 200

                                                                                                                                                                    p12 300

                                                                                                                                                                    p13 300

                                                                                                                                                                    104

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                    ORDER BY 4 desc 8 123

                                                                                                                                                                    105

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                    106

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                    107

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                    108

                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                    109

                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                    110

                                                                                                                                                                    GROUPING SETS

                                                                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                    HAVING tot-qty gt 100

                                                                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                    111

                                                                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                    112

                                                                                                                                                                    ROLLUP

                                                                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                                                                    113

                                                                                                                                                                    ROLLUP

                                                                                                                                                                    114

                                                                                                                                                                    ROLLUP

                                                                                                                                                                    Et le CUBE

                                                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                                                    de certains nuls

                                                                                                                                                                    115

                                                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                    Wiley (publ)

                                                                                                                                                                    116

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                    117

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                    118

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    119

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    120

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    121

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    122

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                    123

                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                                    124

                                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                    hellip

                                                                                                                                                                    125

                                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                    126

                                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                                    148

                                                                                                                                                                    FIN

                                                                                                                                                                    149

                                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                                    • Slide 3
                                                                                                                                                                    • Synonymes
                                                                                                                                                                    • Noms dattributs
                                                                                                                                                                    • Slide 6
                                                                                                                                                                    • Slide 7
                                                                                                                                                                    • Slide 8
                                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                                    • Expressions de valeur
                                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                                    • Limitations de NOT
                                                                                                                                                                    • ANY et ALL
                                                                                                                                                                    • Injection SQL
                                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                                    • XOR
                                                                                                                                                                    • IMP
                                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                                    • Valeurs nulles
                                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                                    • Fonction DDB
                                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                                    • Fonction PMT
                                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                                    • GROUP BY
                                                                                                                                                                    • LIST Function
                                                                                                                                                                    • LIST Function (2)
                                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                                    • T-GROUP BY
                                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                                    • Distribution
                                                                                                                                                                    • Reacutesultat
                                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                    • Tendance
                                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                    • GROUPING SETS
                                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                    • Slide 112
                                                                                                                                                                    • Slide 113
                                                                                                                                                                    • Slide 114
                                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                    • FIN
                                                                                                                                                                    • Slide 149

                                                                                                                                                                      83

                                                                                                                                                                      Rangs Denses(Dense Ranking)

                                                                                                                                                                      SELECT [s] [p] (select count(qty) from (select distinct qty from SP as y) as X where Xqty gt spqty)+1 AS [D-rank] qtyFROM SPORDER BY qty DESC [s]

                                                                                                                                                                      s p qtyD-rank

                                                                                                                                                                      s1 p3 400 1

                                                                                                                                                                      s3 p2 400 1

                                                                                                                                                                      s4 p5 400 1

                                                                                                                                                                      s1 p1 300 2

                                                                                                                                                                      s2 p2 300 2

                                                                                                                                                                      s4 p4 300 2

                                                                                                                                                                      s1 p4 200 3

                                                                                                                                                                      s1 p2 200 3

                                                                                                                                                                      s4 p2 200 3

                                                                                                                                                                      s4 p1 200 3

                                                                                                                                                                      s1 p6 100 4

                                                                                                                                                                      s1 p5 100 4

                                                                                                                                                                      84

                                                                                                                                                                      Rangs DensesGraphique MsAccess

                                                                                                                                                                      s p qty D-rank

                                                                                                                                                                      s1 p3 400 1

                                                                                                                                                                      s3 p2 400 1

                                                                                                                                                                      s4 p5 400 1

                                                                                                                                                                      s1 p1 300 2

                                                                                                                                                                      s2 p2 300 2

                                                                                                                                                                      s4 p4 300 2

                                                                                                                                                                      s1 p4 200 3

                                                                                                                                                                      s1 p2 200 3

                                                                                                                                                                      s4 p2 200 3

                                                                                                                                                                      s4 p1 200 3

                                                                                                                                                                      s1 p6 100 4

                                                                                                                                                                      s1 p5 100 4

                                                                                                                                                                      85

                                                                                                                                                                      Distribution

                                                                                                                                                                      La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                                      86

                                                                                                                                                                      Reacutesultat

                                                                                                                                                                      s Distribution

                                                                                                                                                                      s1 0419

                                                                                                                                                                      s2 0097

                                                                                                                                                                      s3 0129

                                                                                                                                                                      s4 0355

                                                                                                                                                                      87

                                                                                                                                                                      Distribution Cumulative

                                                                                                                                                                      La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                      SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                      FROM SP

                                                                                                                                                                      ORDER BY SP[s]

                                                                                                                                                                      88

                                                                                                                                                                      Reacutesultat

                                                                                                                                                                      sDistribution Cumuleacutee

                                                                                                                                                                      s1 0419

                                                                                                                                                                      s2 0516

                                                                                                                                                                      s3 0645

                                                                                                                                                                      s4 1

                                                                                                                                                                      89

                                                                                                                                                                      Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                      plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                      - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                      - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                      - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                      90

                                                                                                                                                                      CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                      IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                      IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                      FROM S

                                                                                                                                                                      GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                      IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                      s1 Smith Paris good good

                                                                                                                                                                      s2 Jones 100 london good VGood

                                                                                                                                                                      s3 Blake 30 Paris good good

                                                                                                                                                                      s4 Clark 10 london OK OK

                                                                                                                                                                      s5 Adams 30 Athens good good

                                                                                                                                                                      bull Notez le traitement du null

                                                                                                                                                                      91

                                                                                                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                      FROM P where weight gt 13

                                                                                                                                                                      union

                                                                                                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                      UNION

                                                                                                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                      ORDER BY warning DESC weight DESC

                                                                                                                                                                      pname weight Warning

                                                                                                                                                                      cam 19 Very Heavy

                                                                                                                                                                      cog 19 Very Heavy

                                                                                                                                                                      bolt 17 Very Heavy

                                                                                                                                                                      nut 14 Very Heavy

                                                                                                                                                                      screw 14 Very Heavy

                                                                                                                                                                      nut 14 Quite Heavy

                                                                                                                                                                      screw 14 Quite Heavy

                                                                                                                                                                      screw 12 Quite Heavy

                                                                                                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                      92

                                                                                                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                      SP

                                                                                                                                                                      s p qtyQty1

                                                                                                                                                                      s1 p1 300 400

                                                                                                                                                                      s1 p2 200

                                                                                                                                                                      s1 p3 400 600

                                                                                                                                                                      s1 p4 200 300

                                                                                                                                                                      s1 p5 100

                                                                                                                                                                      s1 p6 100 200

                                                                                                                                                                      s2 p2 300 500

                                                                                                                                                                      s3 p2 400

                                                                                                                                                                      s4 p1 200 100

                                                                                                                                                                      s4 p2 200

                                                                                                                                                                      s4 p4 300

                                                                                                                                                                      s4 p5 400

                                                                                                                                                                      93

                                                                                                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                      SP

                                                                                                                                                                      s p qtyQty1

                                                                                                                                                                      s1 p1 300 400

                                                                                                                                                                      s1 p2 200

                                                                                                                                                                      s1 p3 400 600

                                                                                                                                                                      s1 p4 200 300

                                                                                                                                                                      s1 p5 100

                                                                                                                                                                      s1 p6 100 200

                                                                                                                                                                      s2 p2 300 500

                                                                                                                                                                      s3 p2 400

                                                                                                                                                                      s4 p1 200 100

                                                                                                                                                                      s4 p2 200

                                                                                                                                                                      s4 p4 300

                                                                                                                                                                      s4 p5 400

                                                                                                                                                                      qty for partpredicted or

                                                                                                                                                                      unknown Qty1

                                                                                                                                                                      100 p5

                                                                                                                                                                      100 predicted value 200

                                                                                                                                                                      200 p2

                                                                                                                                                                      200 predicted value 200

                                                                                                                                                                      300 p4

                                                                                                                                                                      300 predicted value 450

                                                                                                                                                                      400 p2

                                                                                                                                                                      400 p5

                                                                                                                                                                      400 predicted value 600

                                                                                                                                                                      94

                                                                                                                                                                      Tendance

                                                                                                                                                                      qty Qty1

                                                                                                                                                                      100 200

                                                                                                                                                                      200 300

                                                                                                                                                                      300 400

                                                                                                                                                                      400 600

                                                                                                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                      Graph 3D avec Qty en abscisses

                                                                                                                                                                      95

                                                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                      30102008 120 27102008 4

                                                                                                                                                                      25102008 131 22102008 4

                                                                                                                                                                      23102008 127 20102008 4

                                                                                                                                                                      17102008 269 14102008 4

                                                                                                                                                                      15102008 60 12102008 4

                                                                                                                                                                      11102008 295 08102008 4

                                                                                                                                                                      09102008 340 06102008 4

                                                                                                                                                                      08102008 324 05102008 4

                                                                                                                                                                      06102008 315 03102008 4

                                                                                                                                                                      96

                                                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                      Graphique avec une info-bulle

                                                                                                                                                                      97

                                                                                                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                      glissantes

                                                                                                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                      bull MAVG

                                                                                                                                                                      bull MSUM

                                                                                                                                                                      bull MDIFF

                                                                                                                                                                      bull Voir Teradata + loin

                                                                                                                                                                      98

                                                                                                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                      99

                                                                                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                      100

                                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                                      capital taux nval apregraves n ans

                                                                                                                                                                      taux1val1 apregraves n ans

                                                                                                                                                                      GainAbs GainRel

                                                                                                                                                                      100 005 1 105 006 106 1 1

                                                                                                                                                                      100 005 2 110 006 112 2 2

                                                                                                                                                                      100 005 3 115 006 119 4 4

                                                                                                                                                                      100 005 4 121 006 126 5 5

                                                                                                                                                                      100 005 5 127 006 133 6 6

                                                                                                                                                                      100 005 6 134 006 141 7 7

                                                                                                                                                                      100 005 7 140 006 150 10 10

                                                                                                                                                                      100 005 8 147 006 159 12 12

                                                                                                                                                                      100 005 9 155 006 168 13 13

                                                                                                                                                                      100 005 10 162 006 179 17 17

                                                                                                                                                                      100 005 11 171 006 189 18 18

                                                                                                                                                                      100 005 12 179 006 201 22 22

                                                                                                                                                                      100 005 13 188 006 213 25 25

                                                                                                                                                                      100 005 14 197 006 226 29 29

                                                                                                                                                                      100 005 15 207 006 239 32 32

                                                                                                                                                                      100 005 16 218 006 254 36 36

                                                                                                                                                                      100 005 17 229 006 269 40 40

                                                                                                                                                                      100 005 18 240 006 285 45 45

                                                                                                                                                                      100 005 19 252 006 302 50 50

                                                                                                                                                                      100 005 20 265 006 320 55 55

                                                                                                                                                                      101

                                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                                      102

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                      financiers de la table Produits

                                                                                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                      bull En ordre descendant de prix

                                                                                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                      bull Plusieurs actionshellip

                                                                                                                                                                      103

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                      P prix

                                                                                                                                                                      p3 200

                                                                                                                                                                      p1 200

                                                                                                                                                                      p2 400

                                                                                                                                                                      p3 200

                                                                                                                                                                      p4 100

                                                                                                                                                                      p6 100

                                                                                                                                                                      p5 300

                                                                                                                                                                      p8 300

                                                                                                                                                                      p7 400

                                                                                                                                                                      p10 200

                                                                                                                                                                      p12 300

                                                                                                                                                                      p13 300

                                                                                                                                                                      104

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                      ORDER BY 4 desc 8 123

                                                                                                                                                                      105

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                      106

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                      107

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                      108

                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                      109

                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                      110

                                                                                                                                                                      GROUPING SETS

                                                                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                      HAVING tot-qty gt 100

                                                                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                      111

                                                                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                      112

                                                                                                                                                                      ROLLUP

                                                                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                                                                      113

                                                                                                                                                                      ROLLUP

                                                                                                                                                                      114

                                                                                                                                                                      ROLLUP

                                                                                                                                                                      Et le CUBE

                                                                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                                                                      de certains nuls

                                                                                                                                                                      115

                                                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                      Wiley (publ)

                                                                                                                                                                      116

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                      117

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                      118

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      119

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      120

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      121

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      122

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                      123

                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                                      124

                                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                      hellip

                                                                                                                                                                      125

                                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                      126

                                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                                      148

                                                                                                                                                                      FIN

                                                                                                                                                                      149

                                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                                      • Slide 3
                                                                                                                                                                      • Synonymes
                                                                                                                                                                      • Noms dattributs
                                                                                                                                                                      • Slide 6
                                                                                                                                                                      • Slide 7
                                                                                                                                                                      • Slide 8
                                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                                      • Expressions de valeur
                                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                                      • Limitations de NOT
                                                                                                                                                                      • ANY et ALL
                                                                                                                                                                      • Injection SQL
                                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                                      • XOR
                                                                                                                                                                      • IMP
                                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                                      • Valeurs nulles
                                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                                      • Fonction DDB
                                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                                      • Fonction PMT
                                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                                      • GROUP BY
                                                                                                                                                                      • LIST Function
                                                                                                                                                                      • LIST Function (2)
                                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                                      • T-GROUP BY
                                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                                      • Distribution
                                                                                                                                                                      • Reacutesultat
                                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                      • Tendance
                                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                      • GROUPING SETS
                                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                      • Slide 112
                                                                                                                                                                      • Slide 113
                                                                                                                                                                      • Slide 114
                                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                      • FIN
                                                                                                                                                                      • Slide 149

                                                                                                                                                                        84

                                                                                                                                                                        Rangs DensesGraphique MsAccess

                                                                                                                                                                        s p qty D-rank

                                                                                                                                                                        s1 p3 400 1

                                                                                                                                                                        s3 p2 400 1

                                                                                                                                                                        s4 p5 400 1

                                                                                                                                                                        s1 p1 300 2

                                                                                                                                                                        s2 p2 300 2

                                                                                                                                                                        s4 p4 300 2

                                                                                                                                                                        s1 p4 200 3

                                                                                                                                                                        s1 p2 200 3

                                                                                                                                                                        s4 p2 200 3

                                                                                                                                                                        s4 p1 200 3

                                                                                                                                                                        s1 p6 100 4

                                                                                                                                                                        s1 p5 100 4

                                                                                                                                                                        85

                                                                                                                                                                        Distribution

                                                                                                                                                                        La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                                        86

                                                                                                                                                                        Reacutesultat

                                                                                                                                                                        s Distribution

                                                                                                                                                                        s1 0419

                                                                                                                                                                        s2 0097

                                                                                                                                                                        s3 0129

                                                                                                                                                                        s4 0355

                                                                                                                                                                        87

                                                                                                                                                                        Distribution Cumulative

                                                                                                                                                                        La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                        SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                        FROM SP

                                                                                                                                                                        ORDER BY SP[s]

                                                                                                                                                                        88

                                                                                                                                                                        Reacutesultat

                                                                                                                                                                        sDistribution Cumuleacutee

                                                                                                                                                                        s1 0419

                                                                                                                                                                        s2 0516

                                                                                                                                                                        s3 0645

                                                                                                                                                                        s4 1

                                                                                                                                                                        89

                                                                                                                                                                        Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                        plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                        - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                        - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                        - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                        90

                                                                                                                                                                        CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                        IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                        IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                        FROM S

                                                                                                                                                                        GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                        IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                        s1 Smith Paris good good

                                                                                                                                                                        s2 Jones 100 london good VGood

                                                                                                                                                                        s3 Blake 30 Paris good good

                                                                                                                                                                        s4 Clark 10 london OK OK

                                                                                                                                                                        s5 Adams 30 Athens good good

                                                                                                                                                                        bull Notez le traitement du null

                                                                                                                                                                        91

                                                                                                                                                                        Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                        SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                        FROM P where weight gt 13

                                                                                                                                                                        union

                                                                                                                                                                        select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                        UNION

                                                                                                                                                                        select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                        ORDER BY warning DESC weight DESC

                                                                                                                                                                        pname weight Warning

                                                                                                                                                                        cam 19 Very Heavy

                                                                                                                                                                        cog 19 Very Heavy

                                                                                                                                                                        bolt 17 Very Heavy

                                                                                                                                                                        nut 14 Very Heavy

                                                                                                                                                                        screw 14 Very Heavy

                                                                                                                                                                        nut 14 Quite Heavy

                                                                                                                                                                        screw 14 Quite Heavy

                                                                                                                                                                        screw 12 Quite Heavy

                                                                                                                                                                        bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                        92

                                                                                                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                        SP

                                                                                                                                                                        s p qtyQty1

                                                                                                                                                                        s1 p1 300 400

                                                                                                                                                                        s1 p2 200

                                                                                                                                                                        s1 p3 400 600

                                                                                                                                                                        s1 p4 200 300

                                                                                                                                                                        s1 p5 100

                                                                                                                                                                        s1 p6 100 200

                                                                                                                                                                        s2 p2 300 500

                                                                                                                                                                        s3 p2 400

                                                                                                                                                                        s4 p1 200 100

                                                                                                                                                                        s4 p2 200

                                                                                                                                                                        s4 p4 300

                                                                                                                                                                        s4 p5 400

                                                                                                                                                                        93

                                                                                                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                        SP

                                                                                                                                                                        s p qtyQty1

                                                                                                                                                                        s1 p1 300 400

                                                                                                                                                                        s1 p2 200

                                                                                                                                                                        s1 p3 400 600

                                                                                                                                                                        s1 p4 200 300

                                                                                                                                                                        s1 p5 100

                                                                                                                                                                        s1 p6 100 200

                                                                                                                                                                        s2 p2 300 500

                                                                                                                                                                        s3 p2 400

                                                                                                                                                                        s4 p1 200 100

                                                                                                                                                                        s4 p2 200

                                                                                                                                                                        s4 p4 300

                                                                                                                                                                        s4 p5 400

                                                                                                                                                                        qty for partpredicted or

                                                                                                                                                                        unknown Qty1

                                                                                                                                                                        100 p5

                                                                                                                                                                        100 predicted value 200

                                                                                                                                                                        200 p2

                                                                                                                                                                        200 predicted value 200

                                                                                                                                                                        300 p4

                                                                                                                                                                        300 predicted value 450

                                                                                                                                                                        400 p2

                                                                                                                                                                        400 p5

                                                                                                                                                                        400 predicted value 600

                                                                                                                                                                        94

                                                                                                                                                                        Tendance

                                                                                                                                                                        qty Qty1

                                                                                                                                                                        100 200

                                                                                                                                                                        200 300

                                                                                                                                                                        300 400

                                                                                                                                                                        400 600

                                                                                                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                        Graph 3D avec Qty en abscisses

                                                                                                                                                                        95

                                                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                        30102008 120 27102008 4

                                                                                                                                                                        25102008 131 22102008 4

                                                                                                                                                                        23102008 127 20102008 4

                                                                                                                                                                        17102008 269 14102008 4

                                                                                                                                                                        15102008 60 12102008 4

                                                                                                                                                                        11102008 295 08102008 4

                                                                                                                                                                        09102008 340 06102008 4

                                                                                                                                                                        08102008 324 05102008 4

                                                                                                                                                                        06102008 315 03102008 4

                                                                                                                                                                        96

                                                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                        Graphique avec une info-bulle

                                                                                                                                                                        97

                                                                                                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                        glissantes

                                                                                                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                        bull MAVG

                                                                                                                                                                        bull MSUM

                                                                                                                                                                        bull MDIFF

                                                                                                                                                                        bull Voir Teradata + loin

                                                                                                                                                                        98

                                                                                                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                        99

                                                                                                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                        100

                                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                                        capital taux nval apregraves n ans

                                                                                                                                                                        taux1val1 apregraves n ans

                                                                                                                                                                        GainAbs GainRel

                                                                                                                                                                        100 005 1 105 006 106 1 1

                                                                                                                                                                        100 005 2 110 006 112 2 2

                                                                                                                                                                        100 005 3 115 006 119 4 4

                                                                                                                                                                        100 005 4 121 006 126 5 5

                                                                                                                                                                        100 005 5 127 006 133 6 6

                                                                                                                                                                        100 005 6 134 006 141 7 7

                                                                                                                                                                        100 005 7 140 006 150 10 10

                                                                                                                                                                        100 005 8 147 006 159 12 12

                                                                                                                                                                        100 005 9 155 006 168 13 13

                                                                                                                                                                        100 005 10 162 006 179 17 17

                                                                                                                                                                        100 005 11 171 006 189 18 18

                                                                                                                                                                        100 005 12 179 006 201 22 22

                                                                                                                                                                        100 005 13 188 006 213 25 25

                                                                                                                                                                        100 005 14 197 006 226 29 29

                                                                                                                                                                        100 005 15 207 006 239 32 32

                                                                                                                                                                        100 005 16 218 006 254 36 36

                                                                                                                                                                        100 005 17 229 006 269 40 40

                                                                                                                                                                        100 005 18 240 006 285 45 45

                                                                                                                                                                        100 005 19 252 006 302 50 50

                                                                                                                                                                        100 005 20 265 006 320 55 55

                                                                                                                                                                        101

                                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                                        102

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                        financiers de la table Produits

                                                                                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                        bull En ordre descendant de prix

                                                                                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                        bull Plusieurs actionshellip

                                                                                                                                                                        103

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                        P prix

                                                                                                                                                                        p3 200

                                                                                                                                                                        p1 200

                                                                                                                                                                        p2 400

                                                                                                                                                                        p3 200

                                                                                                                                                                        p4 100

                                                                                                                                                                        p6 100

                                                                                                                                                                        p5 300

                                                                                                                                                                        p8 300

                                                                                                                                                                        p7 400

                                                                                                                                                                        p10 200

                                                                                                                                                                        p12 300

                                                                                                                                                                        p13 300

                                                                                                                                                                        104

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                        ORDER BY 4 desc 8 123

                                                                                                                                                                        105

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                        106

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                        107

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                        108

                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                        109

                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                        110

                                                                                                                                                                        GROUPING SETS

                                                                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                        HAVING tot-qty gt 100

                                                                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                        111

                                                                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                        112

                                                                                                                                                                        ROLLUP

                                                                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                                                                        113

                                                                                                                                                                        ROLLUP

                                                                                                                                                                        114

                                                                                                                                                                        ROLLUP

                                                                                                                                                                        Et le CUBE

                                                                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                                                                        de certains nuls

                                                                                                                                                                        115

                                                                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                        Wiley (publ)

                                                                                                                                                                        116

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                        117

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                        118

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        119

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        120

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        121

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        122

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                        123

                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                        Exeacutecution autonome

                                                                                                                                                                        124

                                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                        hellip

                                                                                                                                                                        125

                                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                        126

                                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                                        148

                                                                                                                                                                        FIN

                                                                                                                                                                        149

                                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                                        • Slide 3
                                                                                                                                                                        • Synonymes
                                                                                                                                                                        • Noms dattributs
                                                                                                                                                                        • Slide 6
                                                                                                                                                                        • Slide 7
                                                                                                                                                                        • Slide 8
                                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                                        • Expressions de valeur
                                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                                        • Limitations de NOT
                                                                                                                                                                        • ANY et ALL
                                                                                                                                                                        • Injection SQL
                                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                                        • XOR
                                                                                                                                                                        • IMP
                                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                                        • Valeurs nulles
                                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                                        • Fonction DDB
                                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                                        • Fonction PMT
                                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                                        • GROUP BY
                                                                                                                                                                        • LIST Function
                                                                                                                                                                        • LIST Function (2)
                                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                                        • T-GROUP BY
                                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                                        • Distribution
                                                                                                                                                                        • Reacutesultat
                                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                        • Tendance
                                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                        • GROUPING SETS
                                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                        • Slide 112
                                                                                                                                                                        • Slide 113
                                                                                                                                                                        • Slide 114
                                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                        • FIN
                                                                                                                                                                        • Slide 149

                                                                                                                                                                          85

                                                                                                                                                                          Distribution

                                                                                                                                                                          La probabiliteacute qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] = SP[s])(select sum(qty) from SP as Y) 3) AS Distribution FROM SP

                                                                                                                                                                          86

                                                                                                                                                                          Reacutesultat

                                                                                                                                                                          s Distribution

                                                                                                                                                                          s1 0419

                                                                                                                                                                          s2 0097

                                                                                                                                                                          s3 0129

                                                                                                                                                                          s4 0355

                                                                                                                                                                          87

                                                                                                                                                                          Distribution Cumulative

                                                                                                                                                                          La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                          SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                          FROM SP

                                                                                                                                                                          ORDER BY SP[s]

                                                                                                                                                                          88

                                                                                                                                                                          Reacutesultat

                                                                                                                                                                          sDistribution Cumuleacutee

                                                                                                                                                                          s1 0419

                                                                                                                                                                          s2 0516

                                                                                                                                                                          s3 0645

                                                                                                                                                                          s4 1

                                                                                                                                                                          89

                                                                                                                                                                          Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                          plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                          - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                          - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                          - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                          90

                                                                                                                                                                          CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                          IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                          IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                          FROM S

                                                                                                                                                                          GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                          IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                          s1 Smith Paris good good

                                                                                                                                                                          s2 Jones 100 london good VGood

                                                                                                                                                                          s3 Blake 30 Paris good good

                                                                                                                                                                          s4 Clark 10 london OK OK

                                                                                                                                                                          s5 Adams 30 Athens good good

                                                                                                                                                                          bull Notez le traitement du null

                                                                                                                                                                          91

                                                                                                                                                                          Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                          SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                          FROM P where weight gt 13

                                                                                                                                                                          union

                                                                                                                                                                          select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                          UNION

                                                                                                                                                                          select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                          ORDER BY warning DESC weight DESC

                                                                                                                                                                          pname weight Warning

                                                                                                                                                                          cam 19 Very Heavy

                                                                                                                                                                          cog 19 Very Heavy

                                                                                                                                                                          bolt 17 Very Heavy

                                                                                                                                                                          nut 14 Very Heavy

                                                                                                                                                                          screw 14 Very Heavy

                                                                                                                                                                          nut 14 Quite Heavy

                                                                                                                                                                          screw 14 Quite Heavy

                                                                                                                                                                          screw 12 Quite Heavy

                                                                                                                                                                          bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                          92

                                                                                                                                                                          UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                          On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                          SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                          FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                          SP

                                                                                                                                                                          s p qtyQty1

                                                                                                                                                                          s1 p1 300 400

                                                                                                                                                                          s1 p2 200

                                                                                                                                                                          s1 p3 400 600

                                                                                                                                                                          s1 p4 200 300

                                                                                                                                                                          s1 p5 100

                                                                                                                                                                          s1 p6 100 200

                                                                                                                                                                          s2 p2 300 500

                                                                                                                                                                          s3 p2 400

                                                                                                                                                                          s4 p1 200 100

                                                                                                                                                                          s4 p2 200

                                                                                                                                                                          s4 p4 300

                                                                                                                                                                          s4 p5 400

                                                                                                                                                                          93

                                                                                                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                          SP

                                                                                                                                                                          s p qtyQty1

                                                                                                                                                                          s1 p1 300 400

                                                                                                                                                                          s1 p2 200

                                                                                                                                                                          s1 p3 400 600

                                                                                                                                                                          s1 p4 200 300

                                                                                                                                                                          s1 p5 100

                                                                                                                                                                          s1 p6 100 200

                                                                                                                                                                          s2 p2 300 500

                                                                                                                                                                          s3 p2 400

                                                                                                                                                                          s4 p1 200 100

                                                                                                                                                                          s4 p2 200

                                                                                                                                                                          s4 p4 300

                                                                                                                                                                          s4 p5 400

                                                                                                                                                                          qty for partpredicted or

                                                                                                                                                                          unknown Qty1

                                                                                                                                                                          100 p5

                                                                                                                                                                          100 predicted value 200

                                                                                                                                                                          200 p2

                                                                                                                                                                          200 predicted value 200

                                                                                                                                                                          300 p4

                                                                                                                                                                          300 predicted value 450

                                                                                                                                                                          400 p2

                                                                                                                                                                          400 p5

                                                                                                                                                                          400 predicted value 600

                                                                                                                                                                          94

                                                                                                                                                                          Tendance

                                                                                                                                                                          qty Qty1

                                                                                                                                                                          100 200

                                                                                                                                                                          200 300

                                                                                                                                                                          300 400

                                                                                                                                                                          400 600

                                                                                                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                          Graph 3D avec Qty en abscisses

                                                                                                                                                                          95

                                                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                          30102008 120 27102008 4

                                                                                                                                                                          25102008 131 22102008 4

                                                                                                                                                                          23102008 127 20102008 4

                                                                                                                                                                          17102008 269 14102008 4

                                                                                                                                                                          15102008 60 12102008 4

                                                                                                                                                                          11102008 295 08102008 4

                                                                                                                                                                          09102008 340 06102008 4

                                                                                                                                                                          08102008 324 05102008 4

                                                                                                                                                                          06102008 315 03102008 4

                                                                                                                                                                          96

                                                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                          Graphique avec une info-bulle

                                                                                                                                                                          97

                                                                                                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                          glissantes

                                                                                                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                          bull MAVG

                                                                                                                                                                          bull MSUM

                                                                                                                                                                          bull MDIFF

                                                                                                                                                                          bull Voir Teradata + loin

                                                                                                                                                                          98

                                                                                                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                          99

                                                                                                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                          100

                                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                                          capital taux nval apregraves n ans

                                                                                                                                                                          taux1val1 apregraves n ans

                                                                                                                                                                          GainAbs GainRel

                                                                                                                                                                          100 005 1 105 006 106 1 1

                                                                                                                                                                          100 005 2 110 006 112 2 2

                                                                                                                                                                          100 005 3 115 006 119 4 4

                                                                                                                                                                          100 005 4 121 006 126 5 5

                                                                                                                                                                          100 005 5 127 006 133 6 6

                                                                                                                                                                          100 005 6 134 006 141 7 7

                                                                                                                                                                          100 005 7 140 006 150 10 10

                                                                                                                                                                          100 005 8 147 006 159 12 12

                                                                                                                                                                          100 005 9 155 006 168 13 13

                                                                                                                                                                          100 005 10 162 006 179 17 17

                                                                                                                                                                          100 005 11 171 006 189 18 18

                                                                                                                                                                          100 005 12 179 006 201 22 22

                                                                                                                                                                          100 005 13 188 006 213 25 25

                                                                                                                                                                          100 005 14 197 006 226 29 29

                                                                                                                                                                          100 005 15 207 006 239 32 32

                                                                                                                                                                          100 005 16 218 006 254 36 36

                                                                                                                                                                          100 005 17 229 006 269 40 40

                                                                                                                                                                          100 005 18 240 006 285 45 45

                                                                                                                                                                          100 005 19 252 006 302 50 50

                                                                                                                                                                          100 005 20 265 006 320 55 55

                                                                                                                                                                          101

                                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                                          102

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                          financiers de la table Produits

                                                                                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                          bull En ordre descendant de prix

                                                                                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                          bull Plusieurs actionshellip

                                                                                                                                                                          103

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                          P prix

                                                                                                                                                                          p3 200

                                                                                                                                                                          p1 200

                                                                                                                                                                          p2 400

                                                                                                                                                                          p3 200

                                                                                                                                                                          p4 100

                                                                                                                                                                          p6 100

                                                                                                                                                                          p5 300

                                                                                                                                                                          p8 300

                                                                                                                                                                          p7 400

                                                                                                                                                                          p10 200

                                                                                                                                                                          p12 300

                                                                                                                                                                          p13 300

                                                                                                                                                                          104

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                          ORDER BY 4 desc 8 123

                                                                                                                                                                          105

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                          106

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                          107

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                          108

                                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                          109

                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                          110

                                                                                                                                                                          GROUPING SETS

                                                                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                          HAVING tot-qty gt 100

                                                                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                          111

                                                                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                          112

                                                                                                                                                                          ROLLUP

                                                                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                                                                          113

                                                                                                                                                                          ROLLUP

                                                                                                                                                                          114

                                                                                                                                                                          ROLLUP

                                                                                                                                                                          Et le CUBE

                                                                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                                                                          de certains nuls

                                                                                                                                                                          115

                                                                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                          Wiley (publ)

                                                                                                                                                                          116

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                          117

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                          118

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          119

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          120

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          121

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          122

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                          123

                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                          Exeacutecution autonome

                                                                                                                                                                          124

                                                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                          hellip

                                                                                                                                                                          125

                                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                          126

                                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                                          148

                                                                                                                                                                          FIN

                                                                                                                                                                          149

                                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                                          • Slide 3
                                                                                                                                                                          • Synonymes
                                                                                                                                                                          • Noms dattributs
                                                                                                                                                                          • Slide 6
                                                                                                                                                                          • Slide 7
                                                                                                                                                                          • Slide 8
                                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                                          • Expressions de valeur
                                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                                          • Limitations de NOT
                                                                                                                                                                          • ANY et ALL
                                                                                                                                                                          • Injection SQL
                                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                                          • XOR
                                                                                                                                                                          • IMP
                                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                                          • Valeurs nulles
                                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                                          • Fonction DDB
                                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                                          • Fonction PMT
                                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                                          • GROUP BY
                                                                                                                                                                          • LIST Function
                                                                                                                                                                          • LIST Function (2)
                                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                                          • T-GROUP BY
                                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                                          • Distribution
                                                                                                                                                                          • Reacutesultat
                                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                          • Tendance
                                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                          • GROUPING SETS
                                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                          • Slide 112
                                                                                                                                                                          • Slide 113
                                                                                                                                                                          • Slide 114
                                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                          • FIN
                                                                                                                                                                          • Slide 149

                                                                                                                                                                            86

                                                                                                                                                                            Reacutesultat

                                                                                                                                                                            s Distribution

                                                                                                                                                                            s1 0419

                                                                                                                                                                            s2 0097

                                                                                                                                                                            s3 0129

                                                                                                                                                                            s4 0355

                                                                                                                                                                            87

                                                                                                                                                                            Distribution Cumulative

                                                                                                                                                                            La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                            SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                            FROM SP

                                                                                                                                                                            ORDER BY SP[s]

                                                                                                                                                                            88

                                                                                                                                                                            Reacutesultat

                                                                                                                                                                            sDistribution Cumuleacutee

                                                                                                                                                                            s1 0419

                                                                                                                                                                            s2 0516

                                                                                                                                                                            s3 0645

                                                                                                                                                                            s4 1

                                                                                                                                                                            89

                                                                                                                                                                            Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                            plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                            - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                            - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                            - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                            90

                                                                                                                                                                            CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                            IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                            IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                            FROM S

                                                                                                                                                                            GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                            IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                            s1 Smith Paris good good

                                                                                                                                                                            s2 Jones 100 london good VGood

                                                                                                                                                                            s3 Blake 30 Paris good good

                                                                                                                                                                            s4 Clark 10 london OK OK

                                                                                                                                                                            s5 Adams 30 Athens good good

                                                                                                                                                                            bull Notez le traitement du null

                                                                                                                                                                            91

                                                                                                                                                                            Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                            SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                            FROM P where weight gt 13

                                                                                                                                                                            union

                                                                                                                                                                            select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                            UNION

                                                                                                                                                                            select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                            ORDER BY warning DESC weight DESC

                                                                                                                                                                            pname weight Warning

                                                                                                                                                                            cam 19 Very Heavy

                                                                                                                                                                            cog 19 Very Heavy

                                                                                                                                                                            bolt 17 Very Heavy

                                                                                                                                                                            nut 14 Very Heavy

                                                                                                                                                                            screw 14 Very Heavy

                                                                                                                                                                            nut 14 Quite Heavy

                                                                                                                                                                            screw 14 Quite Heavy

                                                                                                                                                                            screw 12 Quite Heavy

                                                                                                                                                                            bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                            92

                                                                                                                                                                            UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                            On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                            SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                            FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                            SP

                                                                                                                                                                            s p qtyQty1

                                                                                                                                                                            s1 p1 300 400

                                                                                                                                                                            s1 p2 200

                                                                                                                                                                            s1 p3 400 600

                                                                                                                                                                            s1 p4 200 300

                                                                                                                                                                            s1 p5 100

                                                                                                                                                                            s1 p6 100 200

                                                                                                                                                                            s2 p2 300 500

                                                                                                                                                                            s3 p2 400

                                                                                                                                                                            s4 p1 200 100

                                                                                                                                                                            s4 p2 200

                                                                                                                                                                            s4 p4 300

                                                                                                                                                                            s4 p5 400

                                                                                                                                                                            93

                                                                                                                                                                            UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                            On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                            SP

                                                                                                                                                                            s p qtyQty1

                                                                                                                                                                            s1 p1 300 400

                                                                                                                                                                            s1 p2 200

                                                                                                                                                                            s1 p3 400 600

                                                                                                                                                                            s1 p4 200 300

                                                                                                                                                                            s1 p5 100

                                                                                                                                                                            s1 p6 100 200

                                                                                                                                                                            s2 p2 300 500

                                                                                                                                                                            s3 p2 400

                                                                                                                                                                            s4 p1 200 100

                                                                                                                                                                            s4 p2 200

                                                                                                                                                                            s4 p4 300

                                                                                                                                                                            s4 p5 400

                                                                                                                                                                            qty for partpredicted or

                                                                                                                                                                            unknown Qty1

                                                                                                                                                                            100 p5

                                                                                                                                                                            100 predicted value 200

                                                                                                                                                                            200 p2

                                                                                                                                                                            200 predicted value 200

                                                                                                                                                                            300 p4

                                                                                                                                                                            300 predicted value 450

                                                                                                                                                                            400 p2

                                                                                                                                                                            400 p5

                                                                                                                                                                            400 predicted value 600

                                                                                                                                                                            94

                                                                                                                                                                            Tendance

                                                                                                                                                                            qty Qty1

                                                                                                                                                                            100 200

                                                                                                                                                                            200 300

                                                                                                                                                                            300 400

                                                                                                                                                                            400 600

                                                                                                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                            Graph 3D avec Qty en abscisses

                                                                                                                                                                            95

                                                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                            30102008 120 27102008 4

                                                                                                                                                                            25102008 131 22102008 4

                                                                                                                                                                            23102008 127 20102008 4

                                                                                                                                                                            17102008 269 14102008 4

                                                                                                                                                                            15102008 60 12102008 4

                                                                                                                                                                            11102008 295 08102008 4

                                                                                                                                                                            09102008 340 06102008 4

                                                                                                                                                                            08102008 324 05102008 4

                                                                                                                                                                            06102008 315 03102008 4

                                                                                                                                                                            96

                                                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                            Graphique avec une info-bulle

                                                                                                                                                                            97

                                                                                                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                            glissantes

                                                                                                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                            bull MAVG

                                                                                                                                                                            bull MSUM

                                                                                                                                                                            bull MDIFF

                                                                                                                                                                            bull Voir Teradata + loin

                                                                                                                                                                            98

                                                                                                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                            99

                                                                                                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                            100

                                                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                                                            capital taux nval apregraves n ans

                                                                                                                                                                            taux1val1 apregraves n ans

                                                                                                                                                                            GainAbs GainRel

                                                                                                                                                                            100 005 1 105 006 106 1 1

                                                                                                                                                                            100 005 2 110 006 112 2 2

                                                                                                                                                                            100 005 3 115 006 119 4 4

                                                                                                                                                                            100 005 4 121 006 126 5 5

                                                                                                                                                                            100 005 5 127 006 133 6 6

                                                                                                                                                                            100 005 6 134 006 141 7 7

                                                                                                                                                                            100 005 7 140 006 150 10 10

                                                                                                                                                                            100 005 8 147 006 159 12 12

                                                                                                                                                                            100 005 9 155 006 168 13 13

                                                                                                                                                                            100 005 10 162 006 179 17 17

                                                                                                                                                                            100 005 11 171 006 189 18 18

                                                                                                                                                                            100 005 12 179 006 201 22 22

                                                                                                                                                                            100 005 13 188 006 213 25 25

                                                                                                                                                                            100 005 14 197 006 226 29 29

                                                                                                                                                                            100 005 15 207 006 239 32 32

                                                                                                                                                                            100 005 16 218 006 254 36 36

                                                                                                                                                                            100 005 17 229 006 269 40 40

                                                                                                                                                                            100 005 18 240 006 285 45 45

                                                                                                                                                                            100 005 19 252 006 302 50 50

                                                                                                                                                                            100 005 20 265 006 320 55 55

                                                                                                                                                                            101

                                                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                                                            102

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                            financiers de la table Produits

                                                                                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                            bull En ordre descendant de prix

                                                                                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                            bull Plusieurs actionshellip

                                                                                                                                                                            103

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                            P prix

                                                                                                                                                                            p3 200

                                                                                                                                                                            p1 200

                                                                                                                                                                            p2 400

                                                                                                                                                                            p3 200

                                                                                                                                                                            p4 100

                                                                                                                                                                            p6 100

                                                                                                                                                                            p5 300

                                                                                                                                                                            p8 300

                                                                                                                                                                            p7 400

                                                                                                                                                                            p10 200

                                                                                                                                                                            p12 300

                                                                                                                                                                            p13 300

                                                                                                                                                                            104

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                            ORDER BY 4 desc 8 123

                                                                                                                                                                            105

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                            106

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                            107

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                            108

                                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                            109

                                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                            110

                                                                                                                                                                            GROUPING SETS

                                                                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                            HAVING tot-qty gt 100

                                                                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                            111

                                                                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                            112

                                                                                                                                                                            ROLLUP

                                                                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                                                                            113

                                                                                                                                                                            ROLLUP

                                                                                                                                                                            114

                                                                                                                                                                            ROLLUP

                                                                                                                                                                            Et le CUBE

                                                                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                                                                            de certains nuls

                                                                                                                                                                            115

                                                                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                            Wiley (publ)

                                                                                                                                                                            116

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                            117

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                            118

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            119

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            120

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            121

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            122

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                            123

                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                            Exeacutecution autonome

                                                                                                                                                                            124

                                                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                            hellip

                                                                                                                                                                            125

                                                                                                                                                                            Liste de Choix Multibase

                                                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                            126

                                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                                            148

                                                                                                                                                                            FIN

                                                                                                                                                                            149

                                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                                            • Slide 3
                                                                                                                                                                            • Synonymes
                                                                                                                                                                            • Noms dattributs
                                                                                                                                                                            • Slide 6
                                                                                                                                                                            • Slide 7
                                                                                                                                                                            • Slide 8
                                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                                            • Expressions de valeur
                                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                                            • Limitations de NOT
                                                                                                                                                                            • ANY et ALL
                                                                                                                                                                            • Injection SQL
                                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                                            • XOR
                                                                                                                                                                            • IMP
                                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                                            • Valeurs nulles
                                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                                            • Fonction DDB
                                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                                            • Fonction PMT
                                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                                            • GROUP BY
                                                                                                                                                                            • LIST Function
                                                                                                                                                                            • LIST Function (2)
                                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                                            • T-GROUP BY
                                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                                            • Distribution
                                                                                                                                                                            • Reacutesultat
                                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                            • Tendance
                                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                            • GROUPING SETS
                                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                            • Slide 112
                                                                                                                                                                            • Slide 113
                                                                                                                                                                            • Slide 114
                                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                            • FIN
                                                                                                                                                                            • Slide 149

                                                                                                                                                                              87

                                                                                                                                                                              Distribution Cumulative

                                                                                                                                                                              La probabiliteacute cumulative qursquoune piegravece soit fournie par un fournisseurndash Arrondie agrave 3 chiffres deacutecimaux

                                                                                                                                                                              SELECT DISTINCT SP[s] round((select sum(qty) from SP X where X[s] lt= SP[s])(select sum(qty) from SP as Y) 3) AS [Distribution Cumuleacutee]

                                                                                                                                                                              FROM SP

                                                                                                                                                                              ORDER BY SP[s]

                                                                                                                                                                              88

                                                                                                                                                                              Reacutesultat

                                                                                                                                                                              sDistribution Cumuleacutee

                                                                                                                                                                              s1 0419

                                                                                                                                                                              s2 0516

                                                                                                                                                                              s3 0645

                                                                                                                                                                              s4 1

                                                                                                                                                                              89

                                                                                                                                                                              Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                              plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                              - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                              - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                              - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                              90

                                                                                                                                                                              CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                              IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                              IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                              FROM S

                                                                                                                                                                              GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                              IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                              s1 Smith Paris good good

                                                                                                                                                                              s2 Jones 100 london good VGood

                                                                                                                                                                              s3 Blake 30 Paris good good

                                                                                                                                                                              s4 Clark 10 london OK OK

                                                                                                                                                                              s5 Adams 30 Athens good good

                                                                                                                                                                              bull Notez le traitement du null

                                                                                                                                                                              91

                                                                                                                                                                              Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                              SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                              FROM P where weight gt 13

                                                                                                                                                                              union

                                                                                                                                                                              select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                              UNION

                                                                                                                                                                              select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                              ORDER BY warning DESC weight DESC

                                                                                                                                                                              pname weight Warning

                                                                                                                                                                              cam 19 Very Heavy

                                                                                                                                                                              cog 19 Very Heavy

                                                                                                                                                                              bolt 17 Very Heavy

                                                                                                                                                                              nut 14 Very Heavy

                                                                                                                                                                              screw 14 Very Heavy

                                                                                                                                                                              nut 14 Quite Heavy

                                                                                                                                                                              screw 14 Quite Heavy

                                                                                                                                                                              screw 12 Quite Heavy

                                                                                                                                                                              bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                              92

                                                                                                                                                                              UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                              On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                              SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                              FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                              SP

                                                                                                                                                                              s p qtyQty1

                                                                                                                                                                              s1 p1 300 400

                                                                                                                                                                              s1 p2 200

                                                                                                                                                                              s1 p3 400 600

                                                                                                                                                                              s1 p4 200 300

                                                                                                                                                                              s1 p5 100

                                                                                                                                                                              s1 p6 100 200

                                                                                                                                                                              s2 p2 300 500

                                                                                                                                                                              s3 p2 400

                                                                                                                                                                              s4 p1 200 100

                                                                                                                                                                              s4 p2 200

                                                                                                                                                                              s4 p4 300

                                                                                                                                                                              s4 p5 400

                                                                                                                                                                              93

                                                                                                                                                                              UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                              On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                              SP

                                                                                                                                                                              s p qtyQty1

                                                                                                                                                                              s1 p1 300 400

                                                                                                                                                                              s1 p2 200

                                                                                                                                                                              s1 p3 400 600

                                                                                                                                                                              s1 p4 200 300

                                                                                                                                                                              s1 p5 100

                                                                                                                                                                              s1 p6 100 200

                                                                                                                                                                              s2 p2 300 500

                                                                                                                                                                              s3 p2 400

                                                                                                                                                                              s4 p1 200 100

                                                                                                                                                                              s4 p2 200

                                                                                                                                                                              s4 p4 300

                                                                                                                                                                              s4 p5 400

                                                                                                                                                                              qty for partpredicted or

                                                                                                                                                                              unknown Qty1

                                                                                                                                                                              100 p5

                                                                                                                                                                              100 predicted value 200

                                                                                                                                                                              200 p2

                                                                                                                                                                              200 predicted value 200

                                                                                                                                                                              300 p4

                                                                                                                                                                              300 predicted value 450

                                                                                                                                                                              400 p2

                                                                                                                                                                              400 p5

                                                                                                                                                                              400 predicted value 600

                                                                                                                                                                              94

                                                                                                                                                                              Tendance

                                                                                                                                                                              qty Qty1

                                                                                                                                                                              100 200

                                                                                                                                                                              200 300

                                                                                                                                                                              300 400

                                                                                                                                                                              400 600

                                                                                                                                                                              SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                              SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                              Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                              Graph 3D avec Qty en abscisses

                                                                                                                                                                              95

                                                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                              30102008 120 27102008 4

                                                                                                                                                                              25102008 131 22102008 4

                                                                                                                                                                              23102008 127 20102008 4

                                                                                                                                                                              17102008 269 14102008 4

                                                                                                                                                                              15102008 60 12102008 4

                                                                                                                                                                              11102008 295 08102008 4

                                                                                                                                                                              09102008 340 06102008 4

                                                                                                                                                                              08102008 324 05102008 4

                                                                                                                                                                              06102008 315 03102008 4

                                                                                                                                                                              96

                                                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                              Graphique avec une info-bulle

                                                                                                                                                                              97

                                                                                                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                              glissantes

                                                                                                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                              bull MAVG

                                                                                                                                                                              bull MSUM

                                                                                                                                                                              bull MDIFF

                                                                                                                                                                              bull Voir Teradata + loin

                                                                                                                                                                              98

                                                                                                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                              99

                                                                                                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                              100

                                                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                                                              capital taux nval apregraves n ans

                                                                                                                                                                              taux1val1 apregraves n ans

                                                                                                                                                                              GainAbs GainRel

                                                                                                                                                                              100 005 1 105 006 106 1 1

                                                                                                                                                                              100 005 2 110 006 112 2 2

                                                                                                                                                                              100 005 3 115 006 119 4 4

                                                                                                                                                                              100 005 4 121 006 126 5 5

                                                                                                                                                                              100 005 5 127 006 133 6 6

                                                                                                                                                                              100 005 6 134 006 141 7 7

                                                                                                                                                                              100 005 7 140 006 150 10 10

                                                                                                                                                                              100 005 8 147 006 159 12 12

                                                                                                                                                                              100 005 9 155 006 168 13 13

                                                                                                                                                                              100 005 10 162 006 179 17 17

                                                                                                                                                                              100 005 11 171 006 189 18 18

                                                                                                                                                                              100 005 12 179 006 201 22 22

                                                                                                                                                                              100 005 13 188 006 213 25 25

                                                                                                                                                                              100 005 14 197 006 226 29 29

                                                                                                                                                                              100 005 15 207 006 239 32 32

                                                                                                                                                                              100 005 16 218 006 254 36 36

                                                                                                                                                                              100 005 17 229 006 269 40 40

                                                                                                                                                                              100 005 18 240 006 285 45 45

                                                                                                                                                                              100 005 19 252 006 302 50 50

                                                                                                                                                                              100 005 20 265 006 320 55 55

                                                                                                                                                                              101

                                                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                                                              102

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                              financiers de la table Produits

                                                                                                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                              bull En ordre descendant de prix

                                                                                                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                              bull Plusieurs actionshellip

                                                                                                                                                                              103

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                              P prix

                                                                                                                                                                              p3 200

                                                                                                                                                                              p1 200

                                                                                                                                                                              p2 400

                                                                                                                                                                              p3 200

                                                                                                                                                                              p4 100

                                                                                                                                                                              p6 100

                                                                                                                                                                              p5 300

                                                                                                                                                                              p8 300

                                                                                                                                                                              p7 400

                                                                                                                                                                              p10 200

                                                                                                                                                                              p12 300

                                                                                                                                                                              p13 300

                                                                                                                                                                              104

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                              ORDER BY 4 desc 8 123

                                                                                                                                                                              105

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                              106

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                              107

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                              108

                                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                              109

                                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                              110

                                                                                                                                                                              GROUPING SETS

                                                                                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                              HAVING tot-qty gt 100

                                                                                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                              111

                                                                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                              112

                                                                                                                                                                              ROLLUP

                                                                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                                                                              113

                                                                                                                                                                              ROLLUP

                                                                                                                                                                              114

                                                                                                                                                                              ROLLUP

                                                                                                                                                                              Et le CUBE

                                                                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                                                                              de certains nuls

                                                                                                                                                                              115

                                                                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                              Wiley (publ)

                                                                                                                                                                              116

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                              117

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                              118

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              119

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              120

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              121

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              122

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                              123

                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                              Exeacutecution autonome

                                                                                                                                                                              124

                                                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                              hellip

                                                                                                                                                                              125

                                                                                                                                                                              Liste de Choix Multibase

                                                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                              126

                                                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                                                              148

                                                                                                                                                                              FIN

                                                                                                                                                                              149

                                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                                              • Slide 3
                                                                                                                                                                              • Synonymes
                                                                                                                                                                              • Noms dattributs
                                                                                                                                                                              • Slide 6
                                                                                                                                                                              • Slide 7
                                                                                                                                                                              • Slide 8
                                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                                              • Expressions de valeur
                                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                                              • Limitations de NOT
                                                                                                                                                                              • ANY et ALL
                                                                                                                                                                              • Injection SQL
                                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                                              • XOR
                                                                                                                                                                              • IMP
                                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                                              • Valeurs nulles
                                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                                              • Fonction DDB
                                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                                              • Fonction PMT
                                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                                              • GROUP BY
                                                                                                                                                                              • LIST Function
                                                                                                                                                                              • LIST Function (2)
                                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                                              • T-GROUP BY
                                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                                              • Distribution
                                                                                                                                                                              • Reacutesultat
                                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                              • Tendance
                                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                              • GROUPING SETS
                                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                              • Slide 112
                                                                                                                                                                              • Slide 113
                                                                                                                                                                              • Slide 114
                                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                              • FIN
                                                                                                                                                                              • Slide 149

                                                                                                                                                                                88

                                                                                                                                                                                Reacutesultat

                                                                                                                                                                                sDistribution Cumuleacutee

                                                                                                                                                                                s1 0419

                                                                                                                                                                                s2 0516

                                                                                                                                                                                s3 0645

                                                                                                                                                                                s4 1

                                                                                                                                                                                89

                                                                                                                                                                                Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                                plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                                - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                                - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                                - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                                90

                                                                                                                                                                                CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                                IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                                IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                                FROM S

                                                                                                                                                                                GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                                IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                                s1 Smith Paris good good

                                                                                                                                                                                s2 Jones 100 london good VGood

                                                                                                                                                                                s3 Blake 30 Paris good good

                                                                                                                                                                                s4 Clark 10 london OK OK

                                                                                                                                                                                s5 Adams 30 Athens good good

                                                                                                                                                                                bull Notez le traitement du null

                                                                                                                                                                                91

                                                                                                                                                                                Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                                SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                                FROM P where weight gt 13

                                                                                                                                                                                union

                                                                                                                                                                                select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                                UNION

                                                                                                                                                                                select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                                ORDER BY warning DESC weight DESC

                                                                                                                                                                                pname weight Warning

                                                                                                                                                                                cam 19 Very Heavy

                                                                                                                                                                                cog 19 Very Heavy

                                                                                                                                                                                bolt 17 Very Heavy

                                                                                                                                                                                nut 14 Very Heavy

                                                                                                                                                                                screw 14 Very Heavy

                                                                                                                                                                                nut 14 Quite Heavy

                                                                                                                                                                                screw 14 Quite Heavy

                                                                                                                                                                                screw 12 Quite Heavy

                                                                                                                                                                                bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                                92

                                                                                                                                                                                UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                                On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                                SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                                FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                                SP

                                                                                                                                                                                s p qtyQty1

                                                                                                                                                                                s1 p1 300 400

                                                                                                                                                                                s1 p2 200

                                                                                                                                                                                s1 p3 400 600

                                                                                                                                                                                s1 p4 200 300

                                                                                                                                                                                s1 p5 100

                                                                                                                                                                                s1 p6 100 200

                                                                                                                                                                                s2 p2 300 500

                                                                                                                                                                                s3 p2 400

                                                                                                                                                                                s4 p1 200 100

                                                                                                                                                                                s4 p2 200

                                                                                                                                                                                s4 p4 300

                                                                                                                                                                                s4 p5 400

                                                                                                                                                                                93

                                                                                                                                                                                UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                                On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                                SP

                                                                                                                                                                                s p qtyQty1

                                                                                                                                                                                s1 p1 300 400

                                                                                                                                                                                s1 p2 200

                                                                                                                                                                                s1 p3 400 600

                                                                                                                                                                                s1 p4 200 300

                                                                                                                                                                                s1 p5 100

                                                                                                                                                                                s1 p6 100 200

                                                                                                                                                                                s2 p2 300 500

                                                                                                                                                                                s3 p2 400

                                                                                                                                                                                s4 p1 200 100

                                                                                                                                                                                s4 p2 200

                                                                                                                                                                                s4 p4 300

                                                                                                                                                                                s4 p5 400

                                                                                                                                                                                qty for partpredicted or

                                                                                                                                                                                unknown Qty1

                                                                                                                                                                                100 p5

                                                                                                                                                                                100 predicted value 200

                                                                                                                                                                                200 p2

                                                                                                                                                                                200 predicted value 200

                                                                                                                                                                                300 p4

                                                                                                                                                                                300 predicted value 450

                                                                                                                                                                                400 p2

                                                                                                                                                                                400 p5

                                                                                                                                                                                400 predicted value 600

                                                                                                                                                                                94

                                                                                                                                                                                Tendance

                                                                                                                                                                                qty Qty1

                                                                                                                                                                                100 200

                                                                                                                                                                                200 300

                                                                                                                                                                                300 400

                                                                                                                                                                                400 600

                                                                                                                                                                                SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                Graph 3D avec Qty en abscisses

                                                                                                                                                                                95

                                                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                30102008 120 27102008 4

                                                                                                                                                                                25102008 131 22102008 4

                                                                                                                                                                                23102008 127 20102008 4

                                                                                                                                                                                17102008 269 14102008 4

                                                                                                                                                                                15102008 60 12102008 4

                                                                                                                                                                                11102008 295 08102008 4

                                                                                                                                                                                09102008 340 06102008 4

                                                                                                                                                                                08102008 324 05102008 4

                                                                                                                                                                                06102008 315 03102008 4

                                                                                                                                                                                96

                                                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                Graphique avec une info-bulle

                                                                                                                                                                                97

                                                                                                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                glissantes

                                                                                                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                bull MAVG

                                                                                                                                                                                bull MSUM

                                                                                                                                                                                bull MDIFF

                                                                                                                                                                                bull Voir Teradata + loin

                                                                                                                                                                                98

                                                                                                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                99

                                                                                                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                100

                                                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                                                capital taux nval apregraves n ans

                                                                                                                                                                                taux1val1 apregraves n ans

                                                                                                                                                                                GainAbs GainRel

                                                                                                                                                                                100 005 1 105 006 106 1 1

                                                                                                                                                                                100 005 2 110 006 112 2 2

                                                                                                                                                                                100 005 3 115 006 119 4 4

                                                                                                                                                                                100 005 4 121 006 126 5 5

                                                                                                                                                                                100 005 5 127 006 133 6 6

                                                                                                                                                                                100 005 6 134 006 141 7 7

                                                                                                                                                                                100 005 7 140 006 150 10 10

                                                                                                                                                                                100 005 8 147 006 159 12 12

                                                                                                                                                                                100 005 9 155 006 168 13 13

                                                                                                                                                                                100 005 10 162 006 179 17 17

                                                                                                                                                                                100 005 11 171 006 189 18 18

                                                                                                                                                                                100 005 12 179 006 201 22 22

                                                                                                                                                                                100 005 13 188 006 213 25 25

                                                                                                                                                                                100 005 14 197 006 226 29 29

                                                                                                                                                                                100 005 15 207 006 239 32 32

                                                                                                                                                                                100 005 16 218 006 254 36 36

                                                                                                                                                                                100 005 17 229 006 269 40 40

                                                                                                                                                                                100 005 18 240 006 285 45 45

                                                                                                                                                                                100 005 19 252 006 302 50 50

                                                                                                                                                                                100 005 20 265 006 320 55 55

                                                                                                                                                                                101

                                                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                                                102

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                financiers de la table Produits

                                                                                                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                bull En ordre descendant de prix

                                                                                                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                bull Plusieurs actionshellip

                                                                                                                                                                                103

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                P prix

                                                                                                                                                                                p3 200

                                                                                                                                                                                p1 200

                                                                                                                                                                                p2 400

                                                                                                                                                                                p3 200

                                                                                                                                                                                p4 100

                                                                                                                                                                                p6 100

                                                                                                                                                                                p5 300

                                                                                                                                                                                p8 300

                                                                                                                                                                                p7 400

                                                                                                                                                                                p10 200

                                                                                                                                                                                p12 300

                                                                                                                                                                                p13 300

                                                                                                                                                                                104

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                                                                                105

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                106

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                107

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                108

                                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                109

                                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                110

                                                                                                                                                                                GROUPING SETS

                                                                                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                HAVING tot-qty gt 100

                                                                                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                111

                                                                                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                112

                                                                                                                                                                                ROLLUP

                                                                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                                                                113

                                                                                                                                                                                ROLLUP

                                                                                                                                                                                114

                                                                                                                                                                                ROLLUP

                                                                                                                                                                                Et le CUBE

                                                                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                                                                de certains nuls

                                                                                                                                                                                115

                                                                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                Wiley (publ)

                                                                                                                                                                                116

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                117

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                118

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                119

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                120

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                121

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                122

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                123

                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                Exeacutecution autonome

                                                                                                                                                                                124

                                                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                hellip

                                                                                                                                                                                125

                                                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                126

                                                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                                                148

                                                                                                                                                                                FIN

                                                                                                                                                                                149

                                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                                • Slide 3
                                                                                                                                                                                • Synonymes
                                                                                                                                                                                • Noms dattributs
                                                                                                                                                                                • Slide 6
                                                                                                                                                                                • Slide 7
                                                                                                                                                                                • Slide 8
                                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                                • ANY et ALL
                                                                                                                                                                                • Injection SQL
                                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                                • XOR
                                                                                                                                                                                • IMP
                                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                                • Fonction DDB
                                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                                • Fonction PMT
                                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                                • GROUP BY
                                                                                                                                                                                • LIST Function
                                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                                • Distribution
                                                                                                                                                                                • Reacutesultat
                                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                • Tendance
                                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                • Slide 112
                                                                                                                                                                                • Slide 113
                                                                                                                                                                                • Slide 114
                                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                • FIN
                                                                                                                                                                                • Slide 149

                                                                                                                                                                                  89

                                                                                                                                                                                  Cateacutegorisation- On attribue une valeur drsquoune cateacutegorie agrave une

                                                                                                                                                                                  plage de valeurs drsquoun attribut- Status lt 30 Cateacutegorie OK- Autrement Cateacutegorie Good- hellip

                                                                                                                                                                                  - Un outil - Fonction scalaire IIF de SQL Access

                                                                                                                                                                                  - VraiFaux en QBE Franccedilais- Peut ecirctre imbriqueacutee

                                                                                                                                                                                  - On peut alternativement utiliser UNION ou UNION ALL

                                                                                                                                                                                  90

                                                                                                                                                                                  CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                                  IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                                  IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                                  FROM S

                                                                                                                                                                                  GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                                  IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                                  s1 Smith Paris good good

                                                                                                                                                                                  s2 Jones 100 london good VGood

                                                                                                                                                                                  s3 Blake 30 Paris good good

                                                                                                                                                                                  s4 Clark 10 london OK OK

                                                                                                                                                                                  s5 Adams 30 Athens good good

                                                                                                                                                                                  bull Notez le traitement du null

                                                                                                                                                                                  91

                                                                                                                                                                                  Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                                  SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                                  FROM P where weight gt 13

                                                                                                                                                                                  union

                                                                                                                                                                                  select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                                  UNION

                                                                                                                                                                                  select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                                  ORDER BY warning DESC weight DESC

                                                                                                                                                                                  pname weight Warning

                                                                                                                                                                                  cam 19 Very Heavy

                                                                                                                                                                                  cog 19 Very Heavy

                                                                                                                                                                                  bolt 17 Very Heavy

                                                                                                                                                                                  nut 14 Very Heavy

                                                                                                                                                                                  screw 14 Very Heavy

                                                                                                                                                                                  nut 14 Quite Heavy

                                                                                                                                                                                  screw 14 Quite Heavy

                                                                                                                                                                                  screw 12 Quite Heavy

                                                                                                                                                                                  bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                                  92

                                                                                                                                                                                  UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                                  On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                                  SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                                  FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                                  SP

                                                                                                                                                                                  s p qtyQty1

                                                                                                                                                                                  s1 p1 300 400

                                                                                                                                                                                  s1 p2 200

                                                                                                                                                                                  s1 p3 400 600

                                                                                                                                                                                  s1 p4 200 300

                                                                                                                                                                                  s1 p5 100

                                                                                                                                                                                  s1 p6 100 200

                                                                                                                                                                                  s2 p2 300 500

                                                                                                                                                                                  s3 p2 400

                                                                                                                                                                                  s4 p1 200 100

                                                                                                                                                                                  s4 p2 200

                                                                                                                                                                                  s4 p4 300

                                                                                                                                                                                  s4 p5 400

                                                                                                                                                                                  93

                                                                                                                                                                                  UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                                  On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                                  SP

                                                                                                                                                                                  s p qtyQty1

                                                                                                                                                                                  s1 p1 300 400

                                                                                                                                                                                  s1 p2 200

                                                                                                                                                                                  s1 p3 400 600

                                                                                                                                                                                  s1 p4 200 300

                                                                                                                                                                                  s1 p5 100

                                                                                                                                                                                  s1 p6 100 200

                                                                                                                                                                                  s2 p2 300 500

                                                                                                                                                                                  s3 p2 400

                                                                                                                                                                                  s4 p1 200 100

                                                                                                                                                                                  s4 p2 200

                                                                                                                                                                                  s4 p4 300

                                                                                                                                                                                  s4 p5 400

                                                                                                                                                                                  qty for partpredicted or

                                                                                                                                                                                  unknown Qty1

                                                                                                                                                                                  100 p5

                                                                                                                                                                                  100 predicted value 200

                                                                                                                                                                                  200 p2

                                                                                                                                                                                  200 predicted value 200

                                                                                                                                                                                  300 p4

                                                                                                                                                                                  300 predicted value 450

                                                                                                                                                                                  400 p2

                                                                                                                                                                                  400 p5

                                                                                                                                                                                  400 predicted value 600

                                                                                                                                                                                  94

                                                                                                                                                                                  Tendance

                                                                                                                                                                                  qty Qty1

                                                                                                                                                                                  100 200

                                                                                                                                                                                  200 300

                                                                                                                                                                                  300 400

                                                                                                                                                                                  400 600

                                                                                                                                                                                  SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                  SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                  Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                  Graph 3D avec Qty en abscisses

                                                                                                                                                                                  95

                                                                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                  Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                  30102008 120 27102008 4

                                                                                                                                                                                  25102008 131 22102008 4

                                                                                                                                                                                  23102008 127 20102008 4

                                                                                                                                                                                  17102008 269 14102008 4

                                                                                                                                                                                  15102008 60 12102008 4

                                                                                                                                                                                  11102008 295 08102008 4

                                                                                                                                                                                  09102008 340 06102008 4

                                                                                                                                                                                  08102008 324 05102008 4

                                                                                                                                                                                  06102008 315 03102008 4

                                                                                                                                                                                  96

                                                                                                                                                                                  Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                  Graphique avec une info-bulle

                                                                                                                                                                                  97

                                                                                                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                  glissantes

                                                                                                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                  bull MAVG

                                                                                                                                                                                  bull MSUM

                                                                                                                                                                                  bull MDIFF

                                                                                                                                                                                  bull Voir Teradata + loin

                                                                                                                                                                                  98

                                                                                                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                  99

                                                                                                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                  100

                                                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                                                  capital taux nval apregraves n ans

                                                                                                                                                                                  taux1val1 apregraves n ans

                                                                                                                                                                                  GainAbs GainRel

                                                                                                                                                                                  100 005 1 105 006 106 1 1

                                                                                                                                                                                  100 005 2 110 006 112 2 2

                                                                                                                                                                                  100 005 3 115 006 119 4 4

                                                                                                                                                                                  100 005 4 121 006 126 5 5

                                                                                                                                                                                  100 005 5 127 006 133 6 6

                                                                                                                                                                                  100 005 6 134 006 141 7 7

                                                                                                                                                                                  100 005 7 140 006 150 10 10

                                                                                                                                                                                  100 005 8 147 006 159 12 12

                                                                                                                                                                                  100 005 9 155 006 168 13 13

                                                                                                                                                                                  100 005 10 162 006 179 17 17

                                                                                                                                                                                  100 005 11 171 006 189 18 18

                                                                                                                                                                                  100 005 12 179 006 201 22 22

                                                                                                                                                                                  100 005 13 188 006 213 25 25

                                                                                                                                                                                  100 005 14 197 006 226 29 29

                                                                                                                                                                                  100 005 15 207 006 239 32 32

                                                                                                                                                                                  100 005 16 218 006 254 36 36

                                                                                                                                                                                  100 005 17 229 006 269 40 40

                                                                                                                                                                                  100 005 18 240 006 285 45 45

                                                                                                                                                                                  100 005 19 252 006 302 50 50

                                                                                                                                                                                  100 005 20 265 006 320 55 55

                                                                                                                                                                                  101

                                                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                                                  102

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                  financiers de la table Produits

                                                                                                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                  bull En ordre descendant de prix

                                                                                                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                  bull Plusieurs actionshellip

                                                                                                                                                                                  103

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                  P prix

                                                                                                                                                                                  p3 200

                                                                                                                                                                                  p1 200

                                                                                                                                                                                  p2 400

                                                                                                                                                                                  p3 200

                                                                                                                                                                                  p4 100

                                                                                                                                                                                  p6 100

                                                                                                                                                                                  p5 300

                                                                                                                                                                                  p8 300

                                                                                                                                                                                  p7 400

                                                                                                                                                                                  p10 200

                                                                                                                                                                                  p12 300

                                                                                                                                                                                  p13 300

                                                                                                                                                                                  104

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                  ORDER BY 4 desc 8 123

                                                                                                                                                                                  105

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                  106

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                  107

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                  108

                                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                  109

                                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                  110

                                                                                                                                                                                  GROUPING SETS

                                                                                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                  HAVING tot-qty gt 100

                                                                                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                  111

                                                                                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                  112

                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                                                                                  113

                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                  114

                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                  Et le CUBE

                                                                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                                                                  de certains nuls

                                                                                                                                                                                  115

                                                                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                  Wiley (publ)

                                                                                                                                                                                  116

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                  117

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                  118

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  119

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  120

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  121

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  122

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                  123

                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                                                  124

                                                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                  hellip

                                                                                                                                                                                  125

                                                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                  126

                                                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                                                  148

                                                                                                                                                                                  FIN

                                                                                                                                                                                  149

                                                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                                                  • Slide 3
                                                                                                                                                                                  • Synonymes
                                                                                                                                                                                  • Noms dattributs
                                                                                                                                                                                  • Slide 6
                                                                                                                                                                                  • Slide 7
                                                                                                                                                                                  • Slide 8
                                                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                                                  • Expressions de valeur
                                                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                                                  • Limitations de NOT
                                                                                                                                                                                  • ANY et ALL
                                                                                                                                                                                  • Injection SQL
                                                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                                                  • XOR
                                                                                                                                                                                  • IMP
                                                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                  • Valeurs nulles
                                                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                                                  • Fonction DDB
                                                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                                                  • Fonction PMT
                                                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                                                  • GROUP BY
                                                                                                                                                                                  • LIST Function
                                                                                                                                                                                  • LIST Function (2)
                                                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                                                  • T-GROUP BY
                                                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                                                  • Distribution
                                                                                                                                                                                  • Reacutesultat
                                                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                  • Tendance
                                                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                  • GROUPING SETS
                                                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                  • Slide 112
                                                                                                                                                                                  • Slide 113
                                                                                                                                                                                  • Slide 114
                                                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                  • FIN
                                                                                                                                                                                  • Slide 149

                                                                                                                                                                                    90

                                                                                                                                                                                    CateacutegorisationSELECT S[S] SSName SStatus SCity

                                                                                                                                                                                    IIf([status]lt30OKgood) AS IIfSimple

                                                                                                                                                                                    IIf([status]lt30OKIIf([status]=100VGoodgood)) AS IIFImbrique

                                                                                                                                                                                    FROM S

                                                                                                                                                                                    GROUP BY S[S] SSName SStatus SCity

                                                                                                                                                                                    IIF et IFF Imbriqueacute dans la requecircte SQL de MsAccessS SName Status City IIfSimple IIFImbrique

                                                                                                                                                                                    s1 Smith Paris good good

                                                                                                                                                                                    s2 Jones 100 london good VGood

                                                                                                                                                                                    s3 Blake 30 Paris good good

                                                                                                                                                                                    s4 Clark 10 london OK OK

                                                                                                                                                                                    s5 Adams 30 Athens good good

                                                                                                                                                                                    bull Notez le traitement du null

                                                                                                                                                                                    91

                                                                                                                                                                                    Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                                    SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                                    FROM P where weight gt 13

                                                                                                                                                                                    union

                                                                                                                                                                                    select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                                    UNION

                                                                                                                                                                                    select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                                    ORDER BY warning DESC weight DESC

                                                                                                                                                                                    pname weight Warning

                                                                                                                                                                                    cam 19 Very Heavy

                                                                                                                                                                                    cog 19 Very Heavy

                                                                                                                                                                                    bolt 17 Very Heavy

                                                                                                                                                                                    nut 14 Very Heavy

                                                                                                                                                                                    screw 14 Very Heavy

                                                                                                                                                                                    nut 14 Quite Heavy

                                                                                                                                                                                    screw 14 Quite Heavy

                                                                                                                                                                                    screw 12 Quite Heavy

                                                                                                                                                                                    bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                                    92

                                                                                                                                                                                    UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                                    On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                                    SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                                    FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                                    SP

                                                                                                                                                                                    s p qtyQty1

                                                                                                                                                                                    s1 p1 300 400

                                                                                                                                                                                    s1 p2 200

                                                                                                                                                                                    s1 p3 400 600

                                                                                                                                                                                    s1 p4 200 300

                                                                                                                                                                                    s1 p5 100

                                                                                                                                                                                    s1 p6 100 200

                                                                                                                                                                                    s2 p2 300 500

                                                                                                                                                                                    s3 p2 400

                                                                                                                                                                                    s4 p1 200 100

                                                                                                                                                                                    s4 p2 200

                                                                                                                                                                                    s4 p4 300

                                                                                                                                                                                    s4 p5 400

                                                                                                                                                                                    93

                                                                                                                                                                                    UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                                    On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                                    SP

                                                                                                                                                                                    s p qtyQty1

                                                                                                                                                                                    s1 p1 300 400

                                                                                                                                                                                    s1 p2 200

                                                                                                                                                                                    s1 p3 400 600

                                                                                                                                                                                    s1 p4 200 300

                                                                                                                                                                                    s1 p5 100

                                                                                                                                                                                    s1 p6 100 200

                                                                                                                                                                                    s2 p2 300 500

                                                                                                                                                                                    s3 p2 400

                                                                                                                                                                                    s4 p1 200 100

                                                                                                                                                                                    s4 p2 200

                                                                                                                                                                                    s4 p4 300

                                                                                                                                                                                    s4 p5 400

                                                                                                                                                                                    qty for partpredicted or

                                                                                                                                                                                    unknown Qty1

                                                                                                                                                                                    100 p5

                                                                                                                                                                                    100 predicted value 200

                                                                                                                                                                                    200 p2

                                                                                                                                                                                    200 predicted value 200

                                                                                                                                                                                    300 p4

                                                                                                                                                                                    300 predicted value 450

                                                                                                                                                                                    400 p2

                                                                                                                                                                                    400 p5

                                                                                                                                                                                    400 predicted value 600

                                                                                                                                                                                    94

                                                                                                                                                                                    Tendance

                                                                                                                                                                                    qty Qty1

                                                                                                                                                                                    100 200

                                                                                                                                                                                    200 300

                                                                                                                                                                                    300 400

                                                                                                                                                                                    400 600

                                                                                                                                                                                    SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                    SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                    Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                    Graph 3D avec Qty en abscisses

                                                                                                                                                                                    95

                                                                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                    Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                    30102008 120 27102008 4

                                                                                                                                                                                    25102008 131 22102008 4

                                                                                                                                                                                    23102008 127 20102008 4

                                                                                                                                                                                    17102008 269 14102008 4

                                                                                                                                                                                    15102008 60 12102008 4

                                                                                                                                                                                    11102008 295 08102008 4

                                                                                                                                                                                    09102008 340 06102008 4

                                                                                                                                                                                    08102008 324 05102008 4

                                                                                                                                                                                    06102008 315 03102008 4

                                                                                                                                                                                    96

                                                                                                                                                                                    Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                    Graphique avec une info-bulle

                                                                                                                                                                                    97

                                                                                                                                                                                    Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                    glissantes

                                                                                                                                                                                    bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                    bull MAVG

                                                                                                                                                                                    bull MSUM

                                                                                                                                                                                    bull MDIFF

                                                                                                                                                                                    bull Voir Teradata + loin

                                                                                                                                                                                    98

                                                                                                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                    99

                                                                                                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                    100

                                                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                                                    capital taux nval apregraves n ans

                                                                                                                                                                                    taux1val1 apregraves n ans

                                                                                                                                                                                    GainAbs GainRel

                                                                                                                                                                                    100 005 1 105 006 106 1 1

                                                                                                                                                                                    100 005 2 110 006 112 2 2

                                                                                                                                                                                    100 005 3 115 006 119 4 4

                                                                                                                                                                                    100 005 4 121 006 126 5 5

                                                                                                                                                                                    100 005 5 127 006 133 6 6

                                                                                                                                                                                    100 005 6 134 006 141 7 7

                                                                                                                                                                                    100 005 7 140 006 150 10 10

                                                                                                                                                                                    100 005 8 147 006 159 12 12

                                                                                                                                                                                    100 005 9 155 006 168 13 13

                                                                                                                                                                                    100 005 10 162 006 179 17 17

                                                                                                                                                                                    100 005 11 171 006 189 18 18

                                                                                                                                                                                    100 005 12 179 006 201 22 22

                                                                                                                                                                                    100 005 13 188 006 213 25 25

                                                                                                                                                                                    100 005 14 197 006 226 29 29

                                                                                                                                                                                    100 005 15 207 006 239 32 32

                                                                                                                                                                                    100 005 16 218 006 254 36 36

                                                                                                                                                                                    100 005 17 229 006 269 40 40

                                                                                                                                                                                    100 005 18 240 006 285 45 45

                                                                                                                                                                                    100 005 19 252 006 302 50 50

                                                                                                                                                                                    100 005 20 265 006 320 55 55

                                                                                                                                                                                    101

                                                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                                                    102

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                    financiers de la table Produits

                                                                                                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                    bull En ordre descendant de prix

                                                                                                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                    bull Plusieurs actionshellip

                                                                                                                                                                                    103

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                    P prix

                                                                                                                                                                                    p3 200

                                                                                                                                                                                    p1 200

                                                                                                                                                                                    p2 400

                                                                                                                                                                                    p3 200

                                                                                                                                                                                    p4 100

                                                                                                                                                                                    p6 100

                                                                                                                                                                                    p5 300

                                                                                                                                                                                    p8 300

                                                                                                                                                                                    p7 400

                                                                                                                                                                                    p10 200

                                                                                                                                                                                    p12 300

                                                                                                                                                                                    p13 300

                                                                                                                                                                                    104

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                    ORDER BY 4 desc 8 123

                                                                                                                                                                                    105

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                    106

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                    107

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                    108

                                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                    109

                                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                    110

                                                                                                                                                                                    GROUPING SETS

                                                                                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                    HAVING tot-qty gt 100

                                                                                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                    111

                                                                                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                    112

                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                                                                                    113

                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                    114

                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                    Et le CUBE

                                                                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                                                                    de certains nuls

                                                                                                                                                                                    115

                                                                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                    Wiley (publ)

                                                                                                                                                                                    116

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                    117

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                    118

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    119

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    120

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    121

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    122

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                    123

                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                                                    124

                                                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                    hellip

                                                                                                                                                                                    125

                                                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                    126

                                                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                                                    148

                                                                                                                                                                                    FIN

                                                                                                                                                                                    149

                                                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                                                    • Slide 3
                                                                                                                                                                                    • Synonymes
                                                                                                                                                                                    • Noms dattributs
                                                                                                                                                                                    • Slide 6
                                                                                                                                                                                    • Slide 7
                                                                                                                                                                                    • Slide 8
                                                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                                                    • Expressions de valeur
                                                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                                                    • Limitations de NOT
                                                                                                                                                                                    • ANY et ALL
                                                                                                                                                                                    • Injection SQL
                                                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                                                    • XOR
                                                                                                                                                                                    • IMP
                                                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                    • Valeurs nulles
                                                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                                                    • Fonction DDB
                                                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                                                    • Fonction PMT
                                                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                                                    • GROUP BY
                                                                                                                                                                                    • LIST Function
                                                                                                                                                                                    • LIST Function (2)
                                                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                                                    • T-GROUP BY
                                                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                                                    • Distribution
                                                                                                                                                                                    • Reacutesultat
                                                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                    • Tendance
                                                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                    • GROUPING SETS
                                                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                    • Slide 112
                                                                                                                                                                                    • Slide 113
                                                                                                                                                                                    • Slide 114
                                                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                    • FIN
                                                                                                                                                                                    • Slide 149

                                                                                                                                                                                      91

                                                                                                                                                                                      Cateacutegorisation Emploi alternatif drsquoUNION

                                                                                                                                                                                      SELECT Ppname weight Very Heavy as Warning

                                                                                                                                                                                      FROM P where weight gt 13

                                                                                                                                                                                      union

                                                                                                                                                                                      select Ppname weight Quite Heavy as w from p where weight between 10 and 16

                                                                                                                                                                                      UNION

                                                                                                                                                                                      select Ppname weight Light as warn from p where weight lt 10

                                                                                                                                                                                      ORDER BY warning DESC weight DESC

                                                                                                                                                                                      pname weight Warning

                                                                                                                                                                                      cam 19 Very Heavy

                                                                                                                                                                                      cog 19 Very Heavy

                                                                                                                                                                                      bolt 17 Very Heavy

                                                                                                                                                                                      nut 14 Very Heavy

                                                                                                                                                                                      screw 14 Very Heavy

                                                                                                                                                                                      nut 14 Quite Heavy

                                                                                                                                                                                      screw 14 Quite Heavy

                                                                                                                                                                                      screw 12 Quite Heavy

                                                                                                                                                                                      bull Table P est dans S-P du coursbull Cateacutegorisation flue (voir laquo nut raquo)bull Noms w et warn sont sans imp

                                                                                                                                                                                      92

                                                                                                                                                                                      UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                                      On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                                      SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                                      FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                                      SP

                                                                                                                                                                                      s p qtyQty1

                                                                                                                                                                                      s1 p1 300 400

                                                                                                                                                                                      s1 p2 200

                                                                                                                                                                                      s1 p3 400 600

                                                                                                                                                                                      s1 p4 200 300

                                                                                                                                                                                      s1 p5 100

                                                                                                                                                                                      s1 p6 100 200

                                                                                                                                                                                      s2 p2 300 500

                                                                                                                                                                                      s3 p2 400

                                                                                                                                                                                      s4 p1 200 100

                                                                                                                                                                                      s4 p2 200

                                                                                                                                                                                      s4 p4 300

                                                                                                                                                                                      s4 p5 400

                                                                                                                                                                                      93

                                                                                                                                                                                      UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                                      On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                                      SP

                                                                                                                                                                                      s p qtyQty1

                                                                                                                                                                                      s1 p1 300 400

                                                                                                                                                                                      s1 p2 200

                                                                                                                                                                                      s1 p3 400 600

                                                                                                                                                                                      s1 p4 200 300

                                                                                                                                                                                      s1 p5 100

                                                                                                                                                                                      s1 p6 100 200

                                                                                                                                                                                      s2 p2 300 500

                                                                                                                                                                                      s3 p2 400

                                                                                                                                                                                      s4 p1 200 100

                                                                                                                                                                                      s4 p2 200

                                                                                                                                                                                      s4 p4 300

                                                                                                                                                                                      s4 p5 400

                                                                                                                                                                                      qty for partpredicted or

                                                                                                                                                                                      unknown Qty1

                                                                                                                                                                                      100 p5

                                                                                                                                                                                      100 predicted value 200

                                                                                                                                                                                      200 p2

                                                                                                                                                                                      200 predicted value 200

                                                                                                                                                                                      300 p4

                                                                                                                                                                                      300 predicted value 450

                                                                                                                                                                                      400 p2

                                                                                                                                                                                      400 p5

                                                                                                                                                                                      400 predicted value 600

                                                                                                                                                                                      94

                                                                                                                                                                                      Tendance

                                                                                                                                                                                      qty Qty1

                                                                                                                                                                                      100 200

                                                                                                                                                                                      200 300

                                                                                                                                                                                      300 400

                                                                                                                                                                                      400 600

                                                                                                                                                                                      SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                      SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                      Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                      Graph 3D avec Qty en abscisses

                                                                                                                                                                                      95

                                                                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                      Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                      30102008 120 27102008 4

                                                                                                                                                                                      25102008 131 22102008 4

                                                                                                                                                                                      23102008 127 20102008 4

                                                                                                                                                                                      17102008 269 14102008 4

                                                                                                                                                                                      15102008 60 12102008 4

                                                                                                                                                                                      11102008 295 08102008 4

                                                                                                                                                                                      09102008 340 06102008 4

                                                                                                                                                                                      08102008 324 05102008 4

                                                                                                                                                                                      06102008 315 03102008 4

                                                                                                                                                                                      96

                                                                                                                                                                                      Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                      Graphique avec une info-bulle

                                                                                                                                                                                      97

                                                                                                                                                                                      Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                      glissantes

                                                                                                                                                                                      bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                      bull MAVG

                                                                                                                                                                                      bull MSUM

                                                                                                                                                                                      bull MDIFF

                                                                                                                                                                                      bull Voir Teradata + loin

                                                                                                                                                                                      98

                                                                                                                                                                                      Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                      geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                      2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                      Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                      On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                      99

                                                                                                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                      100

                                                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                                                      capital taux nval apregraves n ans

                                                                                                                                                                                      taux1val1 apregraves n ans

                                                                                                                                                                                      GainAbs GainRel

                                                                                                                                                                                      100 005 1 105 006 106 1 1

                                                                                                                                                                                      100 005 2 110 006 112 2 2

                                                                                                                                                                                      100 005 3 115 006 119 4 4

                                                                                                                                                                                      100 005 4 121 006 126 5 5

                                                                                                                                                                                      100 005 5 127 006 133 6 6

                                                                                                                                                                                      100 005 6 134 006 141 7 7

                                                                                                                                                                                      100 005 7 140 006 150 10 10

                                                                                                                                                                                      100 005 8 147 006 159 12 12

                                                                                                                                                                                      100 005 9 155 006 168 13 13

                                                                                                                                                                                      100 005 10 162 006 179 17 17

                                                                                                                                                                                      100 005 11 171 006 189 18 18

                                                                                                                                                                                      100 005 12 179 006 201 22 22

                                                                                                                                                                                      100 005 13 188 006 213 25 25

                                                                                                                                                                                      100 005 14 197 006 226 29 29

                                                                                                                                                                                      100 005 15 207 006 239 32 32

                                                                                                                                                                                      100 005 16 218 006 254 36 36

                                                                                                                                                                                      100 005 17 229 006 269 40 40

                                                                                                                                                                                      100 005 18 240 006 285 45 45

                                                                                                                                                                                      100 005 19 252 006 302 50 50

                                                                                                                                                                                      100 005 20 265 006 320 55 55

                                                                                                                                                                                      101

                                                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                                                      102

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                      financiers de la table Produits

                                                                                                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                      bull En ordre descendant de prix

                                                                                                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                      bull Plusieurs actionshellip

                                                                                                                                                                                      103

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                      P prix

                                                                                                                                                                                      p3 200

                                                                                                                                                                                      p1 200

                                                                                                                                                                                      p2 400

                                                                                                                                                                                      p3 200

                                                                                                                                                                                      p4 100

                                                                                                                                                                                      p6 100

                                                                                                                                                                                      p5 300

                                                                                                                                                                                      p8 300

                                                                                                                                                                                      p7 400

                                                                                                                                                                                      p10 200

                                                                                                                                                                                      p12 300

                                                                                                                                                                                      p13 300

                                                                                                                                                                                      104

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                      ORDER BY 4 desc 8 123

                                                                                                                                                                                      105

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                      106

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                      107

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                      108

                                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                      109

                                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                      110

                                                                                                                                                                                      GROUPING SETS

                                                                                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                      HAVING tot-qty gt 100

                                                                                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                      111

                                                                                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                      112

                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                                                                                      113

                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                      114

                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                      Et le CUBE

                                                                                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                                                                                      de certains nuls

                                                                                                                                                                                      115

                                                                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                      Wiley (publ)

                                                                                                                                                                                      116

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                      117

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                      118

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      119

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      120

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      121

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      122

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                      123

                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                                                      124

                                                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                      hellip

                                                                                                                                                                                      125

                                                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                      126

                                                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                                                      148

                                                                                                                                                                                      FIN

                                                                                                                                                                                      149

                                                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                                                      • Slide 3
                                                                                                                                                                                      • Synonymes
                                                                                                                                                                                      • Noms dattributs
                                                                                                                                                                                      • Slide 6
                                                                                                                                                                                      • Slide 7
                                                                                                                                                                                      • Slide 8
                                                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                                                      • Expressions de valeur
                                                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                                                      • Limitations de NOT
                                                                                                                                                                                      • ANY et ALL
                                                                                                                                                                                      • Injection SQL
                                                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                                                      • XOR
                                                                                                                                                                                      • IMP
                                                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                      • Valeurs nulles
                                                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                                                      • Fonction DDB
                                                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                                                      • Fonction PMT
                                                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                                                      • GROUP BY
                                                                                                                                                                                      • LIST Function
                                                                                                                                                                                      • LIST Function (2)
                                                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                                                      • T-GROUP BY
                                                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                                                      • Distribution
                                                                                                                                                                                      • Reacutesultat
                                                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                      • Tendance
                                                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                      • GROUPING SETS
                                                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                      • Slide 112
                                                                                                                                                                                      • Slide 113
                                                                                                                                                                                      • Slide 114
                                                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                      • FIN
                                                                                                                                                                                      • Slide 149

                                                                                                                                                                                        92

                                                                                                                                                                                        UNIONPreacutedictions de Valeurs Inconnues

                                                                                                                                                                                        On considegravere AVG(Qty1) pour Qty

                                                                                                                                                                                        SELECT qty predicted value as [for part] Avg(Qty1) as [predicted or unknown Qty1]

                                                                                                                                                                                        FROM SPgroup by qtyunionSELECT qty [p] Qty1FROM SP as SP1 where qty1 is nullorder by qty

                                                                                                                                                                                        SP

                                                                                                                                                                                        s p qtyQty1

                                                                                                                                                                                        s1 p1 300 400

                                                                                                                                                                                        s1 p2 200

                                                                                                                                                                                        s1 p3 400 600

                                                                                                                                                                                        s1 p4 200 300

                                                                                                                                                                                        s1 p5 100

                                                                                                                                                                                        s1 p6 100 200

                                                                                                                                                                                        s2 p2 300 500

                                                                                                                                                                                        s3 p2 400

                                                                                                                                                                                        s4 p1 200 100

                                                                                                                                                                                        s4 p2 200

                                                                                                                                                                                        s4 p4 300

                                                                                                                                                                                        s4 p5 400

                                                                                                                                                                                        93

                                                                                                                                                                                        UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                                        On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                                        SP

                                                                                                                                                                                        s p qtyQty1

                                                                                                                                                                                        s1 p1 300 400

                                                                                                                                                                                        s1 p2 200

                                                                                                                                                                                        s1 p3 400 600

                                                                                                                                                                                        s1 p4 200 300

                                                                                                                                                                                        s1 p5 100

                                                                                                                                                                                        s1 p6 100 200

                                                                                                                                                                                        s2 p2 300 500

                                                                                                                                                                                        s3 p2 400

                                                                                                                                                                                        s4 p1 200 100

                                                                                                                                                                                        s4 p2 200

                                                                                                                                                                                        s4 p4 300

                                                                                                                                                                                        s4 p5 400

                                                                                                                                                                                        qty for partpredicted or

                                                                                                                                                                                        unknown Qty1

                                                                                                                                                                                        100 p5

                                                                                                                                                                                        100 predicted value 200

                                                                                                                                                                                        200 p2

                                                                                                                                                                                        200 predicted value 200

                                                                                                                                                                                        300 p4

                                                                                                                                                                                        300 predicted value 450

                                                                                                                                                                                        400 p2

                                                                                                                                                                                        400 p5

                                                                                                                                                                                        400 predicted value 600

                                                                                                                                                                                        94

                                                                                                                                                                                        Tendance

                                                                                                                                                                                        qty Qty1

                                                                                                                                                                                        100 200

                                                                                                                                                                                        200 300

                                                                                                                                                                                        300 400

                                                                                                                                                                                        400 600

                                                                                                                                                                                        SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                        SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                        Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                        Graph 3D avec Qty en abscisses

                                                                                                                                                                                        95

                                                                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                        Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                        30102008 120 27102008 4

                                                                                                                                                                                        25102008 131 22102008 4

                                                                                                                                                                                        23102008 127 20102008 4

                                                                                                                                                                                        17102008 269 14102008 4

                                                                                                                                                                                        15102008 60 12102008 4

                                                                                                                                                                                        11102008 295 08102008 4

                                                                                                                                                                                        09102008 340 06102008 4

                                                                                                                                                                                        08102008 324 05102008 4

                                                                                                                                                                                        06102008 315 03102008 4

                                                                                                                                                                                        96

                                                                                                                                                                                        Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                        Graphique avec une info-bulle

                                                                                                                                                                                        97

                                                                                                                                                                                        Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                        glissantes

                                                                                                                                                                                        bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                        bull MAVG

                                                                                                                                                                                        bull MSUM

                                                                                                                                                                                        bull MDIFF

                                                                                                                                                                                        bull Voir Teradata + loin

                                                                                                                                                                                        98

                                                                                                                                                                                        Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                        geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                        2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                        Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                        On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                        99

                                                                                                                                                                                        Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                        SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                        Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                        100

                                                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                                                        capital taux nval apregraves n ans

                                                                                                                                                                                        taux1val1 apregraves n ans

                                                                                                                                                                                        GainAbs GainRel

                                                                                                                                                                                        100 005 1 105 006 106 1 1

                                                                                                                                                                                        100 005 2 110 006 112 2 2

                                                                                                                                                                                        100 005 3 115 006 119 4 4

                                                                                                                                                                                        100 005 4 121 006 126 5 5

                                                                                                                                                                                        100 005 5 127 006 133 6 6

                                                                                                                                                                                        100 005 6 134 006 141 7 7

                                                                                                                                                                                        100 005 7 140 006 150 10 10

                                                                                                                                                                                        100 005 8 147 006 159 12 12

                                                                                                                                                                                        100 005 9 155 006 168 13 13

                                                                                                                                                                                        100 005 10 162 006 179 17 17

                                                                                                                                                                                        100 005 11 171 006 189 18 18

                                                                                                                                                                                        100 005 12 179 006 201 22 22

                                                                                                                                                                                        100 005 13 188 006 213 25 25

                                                                                                                                                                                        100 005 14 197 006 226 29 29

                                                                                                                                                                                        100 005 15 207 006 239 32 32

                                                                                                                                                                                        100 005 16 218 006 254 36 36

                                                                                                                                                                                        100 005 17 229 006 269 40 40

                                                                                                                                                                                        100 005 18 240 006 285 45 45

                                                                                                                                                                                        100 005 19 252 006 302 50 50

                                                                                                                                                                                        100 005 20 265 006 320 55 55

                                                                                                                                                                                        101

                                                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                                                        102

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                        financiers de la table Produits

                                                                                                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                        bull En ordre descendant de prix

                                                                                                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                        bull Plusieurs actionshellip

                                                                                                                                                                                        103

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                        P prix

                                                                                                                                                                                        p3 200

                                                                                                                                                                                        p1 200

                                                                                                                                                                                        p2 400

                                                                                                                                                                                        p3 200

                                                                                                                                                                                        p4 100

                                                                                                                                                                                        p6 100

                                                                                                                                                                                        p5 300

                                                                                                                                                                                        p8 300

                                                                                                                                                                                        p7 400

                                                                                                                                                                                        p10 200

                                                                                                                                                                                        p12 300

                                                                                                                                                                                        p13 300

                                                                                                                                                                                        104

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                        ORDER BY 4 desc 8 123

                                                                                                                                                                                        105

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                        106

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                        107

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                        108

                                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                        109

                                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                        110

                                                                                                                                                                                        GROUPING SETS

                                                                                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                        HAVING tot-qty gt 100

                                                                                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                        111

                                                                                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                        112

                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                                                                                        113

                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                        114

                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                        Et le CUBE

                                                                                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                                                                                        de certains nuls

                                                                                                                                                                                        115

                                                                                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                        Wiley (publ)

                                                                                                                                                                                        116

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                        117

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                        118

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        119

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        120

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        121

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        122

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                        123

                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                        Exeacutecution autonome

                                                                                                                                                                                        124

                                                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                        hellip

                                                                                                                                                                                        125

                                                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                        126

                                                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                                                        148

                                                                                                                                                                                        FIN

                                                                                                                                                                                        149

                                                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                                                        • Slide 3
                                                                                                                                                                                        • Synonymes
                                                                                                                                                                                        • Noms dattributs
                                                                                                                                                                                        • Slide 6
                                                                                                                                                                                        • Slide 7
                                                                                                                                                                                        • Slide 8
                                                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                                                        • Expressions de valeur
                                                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                                                        • Limitations de NOT
                                                                                                                                                                                        • ANY et ALL
                                                                                                                                                                                        • Injection SQL
                                                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                                                        • XOR
                                                                                                                                                                                        • IMP
                                                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                        • Valeurs nulles
                                                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                                                        • Fonction DDB
                                                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                                                        • Fonction PMT
                                                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                                                        • GROUP BY
                                                                                                                                                                                        • LIST Function
                                                                                                                                                                                        • LIST Function (2)
                                                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                                                        • T-GROUP BY
                                                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                                                        • Distribution
                                                                                                                                                                                        • Reacutesultat
                                                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                        • Tendance
                                                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                        • GROUPING SETS
                                                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                        • Slide 112
                                                                                                                                                                                        • Slide 113
                                                                                                                                                                                        • Slide 114
                                                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                        • FIN
                                                                                                                                                                                        • Slide 149

                                                                                                                                                                                          93

                                                                                                                                                                                          UNIONPreacutediction de Valeurs Inconnues

                                                                                                                                                                                          On peut compleacuteter SP par UPDATE SPReacutesultat

                                                                                                                                                                                          SP

                                                                                                                                                                                          s p qtyQty1

                                                                                                                                                                                          s1 p1 300 400

                                                                                                                                                                                          s1 p2 200

                                                                                                                                                                                          s1 p3 400 600

                                                                                                                                                                                          s1 p4 200 300

                                                                                                                                                                                          s1 p5 100

                                                                                                                                                                                          s1 p6 100 200

                                                                                                                                                                                          s2 p2 300 500

                                                                                                                                                                                          s3 p2 400

                                                                                                                                                                                          s4 p1 200 100

                                                                                                                                                                                          s4 p2 200

                                                                                                                                                                                          s4 p4 300

                                                                                                                                                                                          s4 p5 400

                                                                                                                                                                                          qty for partpredicted or

                                                                                                                                                                                          unknown Qty1

                                                                                                                                                                                          100 p5

                                                                                                                                                                                          100 predicted value 200

                                                                                                                                                                                          200 p2

                                                                                                                                                                                          200 predicted value 200

                                                                                                                                                                                          300 p4

                                                                                                                                                                                          300 predicted value 450

                                                                                                                                                                                          400 p2

                                                                                                                                                                                          400 p5

                                                                                                                                                                                          400 predicted value 600

                                                                                                                                                                                          94

                                                                                                                                                                                          Tendance

                                                                                                                                                                                          qty Qty1

                                                                                                                                                                                          100 200

                                                                                                                                                                                          200 300

                                                                                                                                                                                          300 400

                                                                                                                                                                                          400 600

                                                                                                                                                                                          SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                          SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                          Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                          Graph 3D avec Qty en abscisses

                                                                                                                                                                                          95

                                                                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                          Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                          30102008 120 27102008 4

                                                                                                                                                                                          25102008 131 22102008 4

                                                                                                                                                                                          23102008 127 20102008 4

                                                                                                                                                                                          17102008 269 14102008 4

                                                                                                                                                                                          15102008 60 12102008 4

                                                                                                                                                                                          11102008 295 08102008 4

                                                                                                                                                                                          09102008 340 06102008 4

                                                                                                                                                                                          08102008 324 05102008 4

                                                                                                                                                                                          06102008 315 03102008 4

                                                                                                                                                                                          96

                                                                                                                                                                                          Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                          Graphique avec une info-bulle

                                                                                                                                                                                          97

                                                                                                                                                                                          Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                          glissantes

                                                                                                                                                                                          bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                          bull MAVG

                                                                                                                                                                                          bull MSUM

                                                                                                                                                                                          bull MDIFF

                                                                                                                                                                                          bull Voir Teradata + loin

                                                                                                                                                                                          98

                                                                                                                                                                                          Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                          geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                          2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                          Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                          On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                          99

                                                                                                                                                                                          Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                          SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                          Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                          100

                                                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                                                          capital taux nval apregraves n ans

                                                                                                                                                                                          taux1val1 apregraves n ans

                                                                                                                                                                                          GainAbs GainRel

                                                                                                                                                                                          100 005 1 105 006 106 1 1

                                                                                                                                                                                          100 005 2 110 006 112 2 2

                                                                                                                                                                                          100 005 3 115 006 119 4 4

                                                                                                                                                                                          100 005 4 121 006 126 5 5

                                                                                                                                                                                          100 005 5 127 006 133 6 6

                                                                                                                                                                                          100 005 6 134 006 141 7 7

                                                                                                                                                                                          100 005 7 140 006 150 10 10

                                                                                                                                                                                          100 005 8 147 006 159 12 12

                                                                                                                                                                                          100 005 9 155 006 168 13 13

                                                                                                                                                                                          100 005 10 162 006 179 17 17

                                                                                                                                                                                          100 005 11 171 006 189 18 18

                                                                                                                                                                                          100 005 12 179 006 201 22 22

                                                                                                                                                                                          100 005 13 188 006 213 25 25

                                                                                                                                                                                          100 005 14 197 006 226 29 29

                                                                                                                                                                                          100 005 15 207 006 239 32 32

                                                                                                                                                                                          100 005 16 218 006 254 36 36

                                                                                                                                                                                          100 005 17 229 006 269 40 40

                                                                                                                                                                                          100 005 18 240 006 285 45 45

                                                                                                                                                                                          100 005 19 252 006 302 50 50

                                                                                                                                                                                          100 005 20 265 006 320 55 55

                                                                                                                                                                                          101

                                                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                                                          102

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                          financiers de la table Produits

                                                                                                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                          bull En ordre descendant de prix

                                                                                                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                          bull Plusieurs actionshellip

                                                                                                                                                                                          103

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                          P prix

                                                                                                                                                                                          p3 200

                                                                                                                                                                                          p1 200

                                                                                                                                                                                          p2 400

                                                                                                                                                                                          p3 200

                                                                                                                                                                                          p4 100

                                                                                                                                                                                          p6 100

                                                                                                                                                                                          p5 300

                                                                                                                                                                                          p8 300

                                                                                                                                                                                          p7 400

                                                                                                                                                                                          p10 200

                                                                                                                                                                                          p12 300

                                                                                                                                                                                          p13 300

                                                                                                                                                                                          104

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                          ORDER BY 4 desc 8 123

                                                                                                                                                                                          105

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                          106

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                          107

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                          108

                                                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                          109

                                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                          110

                                                                                                                                                                                          GROUPING SETS

                                                                                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                          HAVING tot-qty gt 100

                                                                                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                          111

                                                                                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                          112

                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                                                                                          113

                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                          114

                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                          Et le CUBE

                                                                                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                                                                                          de certains nuls

                                                                                                                                                                                          115

                                                                                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                          Wiley (publ)

                                                                                                                                                                                          116

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                          117

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                          118

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          119

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          120

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          121

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          122

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                          123

                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                          Exeacutecution autonome

                                                                                                                                                                                          124

                                                                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                          hellip

                                                                                                                                                                                          125

                                                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                          126

                                                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                                                          148

                                                                                                                                                                                          FIN

                                                                                                                                                                                          149

                                                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                                                          • Slide 3
                                                                                                                                                                                          • Synonymes
                                                                                                                                                                                          • Noms dattributs
                                                                                                                                                                                          • Slide 6
                                                                                                                                                                                          • Slide 7
                                                                                                                                                                                          • Slide 8
                                                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                                                          • Expressions de valeur
                                                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                                                          • Limitations de NOT
                                                                                                                                                                                          • ANY et ALL
                                                                                                                                                                                          • Injection SQL
                                                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                                                          • XOR
                                                                                                                                                                                          • IMP
                                                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                          • Valeurs nulles
                                                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                                                          • Fonction DDB
                                                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                                                          • Fonction PMT
                                                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                                                          • GROUP BY
                                                                                                                                                                                          • LIST Function
                                                                                                                                                                                          • LIST Function (2)
                                                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                                                          • T-GROUP BY
                                                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                                                          • Distribution
                                                                                                                                                                                          • Reacutesultat
                                                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                          • Tendance
                                                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                          • GROUPING SETS
                                                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                          • Slide 112
                                                                                                                                                                                          • Slide 113
                                                                                                                                                                                          • Slide 114
                                                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                          • FIN
                                                                                                                                                                                          • Slide 149

                                                                                                                                                                                            94

                                                                                                                                                                                            Tendance

                                                                                                                                                                                            qty Qty1

                                                                                                                                                                                            100 200

                                                                                                                                                                                            200 300

                                                                                                                                                                                            300 400

                                                                                                                                                                                            400 600

                                                                                                                                                                                            SELECT SPqty SPQty1FROM SPWHERE (((SPQty1) Is Not Null))ORDER BY SPqty

                                                                                                                                                                                            SP est supposeacute avec la DF entre Qty et Qty1

                                                                                                                                                                                            Tendance Qty1 est toujours gt Qty + drsquoeacutecart pour Qty gt 300

                                                                                                                                                                                            Graph 3D avec Qty en abscisses

                                                                                                                                                                                            95

                                                                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                            Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                            30102008 120 27102008 4

                                                                                                                                                                                            25102008 131 22102008 4

                                                                                                                                                                                            23102008 127 20102008 4

                                                                                                                                                                                            17102008 269 14102008 4

                                                                                                                                                                                            15102008 60 12102008 4

                                                                                                                                                                                            11102008 295 08102008 4

                                                                                                                                                                                            09102008 340 06102008 4

                                                                                                                                                                                            08102008 324 05102008 4

                                                                                                                                                                                            06102008 315 03102008 4

                                                                                                                                                                                            96

                                                                                                                                                                                            Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                            Graphique avec une info-bulle

                                                                                                                                                                                            97

                                                                                                                                                                                            Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                            glissantes

                                                                                                                                                                                            bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                            bull MAVG

                                                                                                                                                                                            bull MSUM

                                                                                                                                                                                            bull MDIFF

                                                                                                                                                                                            bull Voir Teradata + loin

                                                                                                                                                                                            98

                                                                                                                                                                                            Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                            geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                            2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                            Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                            On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                            99

                                                                                                                                                                                            Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                            SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                            Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                            100

                                                                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                                                                            capital taux nval apregraves n ans

                                                                                                                                                                                            taux1val1 apregraves n ans

                                                                                                                                                                                            GainAbs GainRel

                                                                                                                                                                                            100 005 1 105 006 106 1 1

                                                                                                                                                                                            100 005 2 110 006 112 2 2

                                                                                                                                                                                            100 005 3 115 006 119 4 4

                                                                                                                                                                                            100 005 4 121 006 126 5 5

                                                                                                                                                                                            100 005 5 127 006 133 6 6

                                                                                                                                                                                            100 005 6 134 006 141 7 7

                                                                                                                                                                                            100 005 7 140 006 150 10 10

                                                                                                                                                                                            100 005 8 147 006 159 12 12

                                                                                                                                                                                            100 005 9 155 006 168 13 13

                                                                                                                                                                                            100 005 10 162 006 179 17 17

                                                                                                                                                                                            100 005 11 171 006 189 18 18

                                                                                                                                                                                            100 005 12 179 006 201 22 22

                                                                                                                                                                                            100 005 13 188 006 213 25 25

                                                                                                                                                                                            100 005 14 197 006 226 29 29

                                                                                                                                                                                            100 005 15 207 006 239 32 32

                                                                                                                                                                                            100 005 16 218 006 254 36 36

                                                                                                                                                                                            100 005 17 229 006 269 40 40

                                                                                                                                                                                            100 005 18 240 006 285 45 45

                                                                                                                                                                                            100 005 19 252 006 302 50 50

                                                                                                                                                                                            100 005 20 265 006 320 55 55

                                                                                                                                                                                            101

                                                                                                                                                                                            Seacuteries financiegraveres

                                                                                                                                                                                            102

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                            financiers de la table Produits

                                                                                                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                            bull En ordre descendant de prix

                                                                                                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                            bull Plusieurs actionshellip

                                                                                                                                                                                            103

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                            P prix

                                                                                                                                                                                            p3 200

                                                                                                                                                                                            p1 200

                                                                                                                                                                                            p2 400

                                                                                                                                                                                            p3 200

                                                                                                                                                                                            p4 100

                                                                                                                                                                                            p6 100

                                                                                                                                                                                            p5 300

                                                                                                                                                                                            p8 300

                                                                                                                                                                                            p7 400

                                                                                                                                                                                            p10 200

                                                                                                                                                                                            p12 300

                                                                                                                                                                                            p13 300

                                                                                                                                                                                            104

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                            ORDER BY 4 desc 8 123

                                                                                                                                                                                            105

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                            106

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                            107

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                            108

                                                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                            109

                                                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                            110

                                                                                                                                                                                            GROUPING SETS

                                                                                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                            HAVING tot-qty gt 100

                                                                                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                            111

                                                                                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                            112

                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                                                                                            113

                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                            114

                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                            Et le CUBE

                                                                                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                                                                                            de certains nuls

                                                                                                                                                                                            115

                                                                                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                            Wiley (publ)

                                                                                                                                                                                            116

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                            117

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                            118

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            119

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            120

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            121

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            122

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                            123

                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                            Exeacutecution autonome

                                                                                                                                                                                            124

                                                                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                            hellip

                                                                                                                                                                                            125

                                                                                                                                                                                            Liste de Choix Multibase

                                                                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                            126

                                                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                                                            148

                                                                                                                                                                                            FIN

                                                                                                                                                                                            149

                                                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                                                            • Slide 3
                                                                                                                                                                                            • Synonymes
                                                                                                                                                                                            • Noms dattributs
                                                                                                                                                                                            • Slide 6
                                                                                                                                                                                            • Slide 7
                                                                                                                                                                                            • Slide 8
                                                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                                                            • Expressions de valeur
                                                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                                                            • Limitations de NOT
                                                                                                                                                                                            • ANY et ALL
                                                                                                                                                                                            • Injection SQL
                                                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                                                            • XOR
                                                                                                                                                                                            • IMP
                                                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                            • Valeurs nulles
                                                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                                                            • Fonction DDB
                                                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                                                            • Fonction PMT
                                                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                                                            • GROUP BY
                                                                                                                                                                                            • LIST Function
                                                                                                                                                                                            • LIST Function (2)
                                                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                                                            • T-GROUP BY
                                                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                                                            • Distribution
                                                                                                                                                                                            • Reacutesultat
                                                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                            • Tendance
                                                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                            • GROUPING SETS
                                                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                            • Slide 112
                                                                                                                                                                                            • Slide 113
                                                                                                                                                                                            • Slide 114
                                                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                            • FIN
                                                                                                                                                                                            • Slide 149

                                                                                                                                                                                              95

                                                                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                              Moyenne Glissante Parameacutetreacuteedate_t MoyGliss date_d k

                                                                                                                                                                                              30102008 120 27102008 4

                                                                                                                                                                                              25102008 131 22102008 4

                                                                                                                                                                                              23102008 127 20102008 4

                                                                                                                                                                                              17102008 269 14102008 4

                                                                                                                                                                                              15102008 60 12102008 4

                                                                                                                                                                                              11102008 295 08102008 4

                                                                                                                                                                                              09102008 340 06102008 4

                                                                                                                                                                                              08102008 324 05102008 4

                                                                                                                                                                                              06102008 315 03102008 4

                                                                                                                                                                                              96

                                                                                                                                                                                              Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                              Graphique avec une info-bulle

                                                                                                                                                                                              97

                                                                                                                                                                                              Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                              glissantes

                                                                                                                                                                                              bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                              bull MAVG

                                                                                                                                                                                              bull MSUM

                                                                                                                                                                                              bull MDIFF

                                                                                                                                                                                              bull Voir Teradata + loin

                                                                                                                                                                                              98

                                                                                                                                                                                              Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                              geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                              2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                              Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                              On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                              99

                                                                                                                                                                                              Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                              SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                              Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                              100

                                                                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                                                                              capital taux nval apregraves n ans

                                                                                                                                                                                              taux1val1 apregraves n ans

                                                                                                                                                                                              GainAbs GainRel

                                                                                                                                                                                              100 005 1 105 006 106 1 1

                                                                                                                                                                                              100 005 2 110 006 112 2 2

                                                                                                                                                                                              100 005 3 115 006 119 4 4

                                                                                                                                                                                              100 005 4 121 006 126 5 5

                                                                                                                                                                                              100 005 5 127 006 133 6 6

                                                                                                                                                                                              100 005 6 134 006 141 7 7

                                                                                                                                                                                              100 005 7 140 006 150 10 10

                                                                                                                                                                                              100 005 8 147 006 159 12 12

                                                                                                                                                                                              100 005 9 155 006 168 13 13

                                                                                                                                                                                              100 005 10 162 006 179 17 17

                                                                                                                                                                                              100 005 11 171 006 189 18 18

                                                                                                                                                                                              100 005 12 179 006 201 22 22

                                                                                                                                                                                              100 005 13 188 006 213 25 25

                                                                                                                                                                                              100 005 14 197 006 226 29 29

                                                                                                                                                                                              100 005 15 207 006 239 32 32

                                                                                                                                                                                              100 005 16 218 006 254 36 36

                                                                                                                                                                                              100 005 17 229 006 269 40 40

                                                                                                                                                                                              100 005 18 240 006 285 45 45

                                                                                                                                                                                              100 005 19 252 006 302 50 50

                                                                                                                                                                                              100 005 20 265 006 320 55 55

                                                                                                                                                                                              101

                                                                                                                                                                                              Seacuteries financiegraveres

                                                                                                                                                                                              102

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                              financiers de la table Produits

                                                                                                                                                                                              bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                              bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                              bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                              bull En ordre descendant de prix

                                                                                                                                                                                              bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                              bull Plusieurs actionshellip

                                                                                                                                                                                              103

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                              P prix

                                                                                                                                                                                              p3 200

                                                                                                                                                                                              p1 200

                                                                                                                                                                                              p2 400

                                                                                                                                                                                              p3 200

                                                                                                                                                                                              p4 100

                                                                                                                                                                                              p6 100

                                                                                                                                                                                              p5 300

                                                                                                                                                                                              p8 300

                                                                                                                                                                                              p7 400

                                                                                                                                                                                              p10 200

                                                                                                                                                                                              p12 300

                                                                                                                                                                                              p13 300

                                                                                                                                                                                              104

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                              ORDER BY 4 desc 8 123

                                                                                                                                                                                              105

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                              106

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                              107

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                              108

                                                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                              109

                                                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                              110

                                                                                                                                                                                              GROUPING SETS

                                                                                                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                              HAVING tot-qty gt 100

                                                                                                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                              111

                                                                                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                              112

                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                                                                                              113

                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                              114

                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                              Et le CUBE

                                                                                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                                                                                              de certains nuls

                                                                                                                                                                                              115

                                                                                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                              Wiley (publ)

                                                                                                                                                                                              116

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                              117

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                              118

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              119

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              120

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              121

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              122

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                              123

                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                              Exeacutecution autonome

                                                                                                                                                                                              124

                                                                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                              hellip

                                                                                                                                                                                              125

                                                                                                                                                                                              Liste de Choix Multibase

                                                                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                              126

                                                                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                                                                              148

                                                                                                                                                                                              FIN

                                                                                                                                                                                              149

                                                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                                                              • Slide 3
                                                                                                                                                                                              • Synonymes
                                                                                                                                                                                              • Noms dattributs
                                                                                                                                                                                              • Slide 6
                                                                                                                                                                                              • Slide 7
                                                                                                                                                                                              • Slide 8
                                                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                                                              • Expressions de valeur
                                                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                                                              • Limitations de NOT
                                                                                                                                                                                              • ANY et ALL
                                                                                                                                                                                              • Injection SQL
                                                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                                                              • XOR
                                                                                                                                                                                              • IMP
                                                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                              • Valeurs nulles
                                                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                                                              • Fonction DDB
                                                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                                                              • Fonction PMT
                                                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                                                              • GROUP BY
                                                                                                                                                                                              • LIST Function
                                                                                                                                                                                              • LIST Function (2)
                                                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                                                              • T-GROUP BY
                                                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                                                              • Distribution
                                                                                                                                                                                              • Reacutesultat
                                                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                              • Tendance
                                                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                              • GROUPING SETS
                                                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                              • Slide 112
                                                                                                                                                                                              • Slide 113
                                                                                                                                                                                              • Slide 114
                                                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                              • FIN
                                                                                                                                                                                              • Slide 149

                                                                                                                                                                                                96

                                                                                                                                                                                                Moyenne GlissanteMoyenne GlissanteSELECT DISTINCT Sdate_t (select int(avg(prix)) from [serie] X where Xdate_t between Sdate_t-jours+1 and Sdate_t) AS MoyenneGlisante date_t-jours+1 as date_d jours as kFROM [serie] SORDER BY date_t DESC

                                                                                                                                                                                                Graphique avec une info-bulle

                                                                                                                                                                                                97

                                                                                                                                                                                                Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                                glissantes

                                                                                                                                                                                                bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                                bull MAVG

                                                                                                                                                                                                bull MSUM

                                                                                                                                                                                                bull MDIFF

                                                                                                                                                                                                bull Voir Teradata + loin

                                                                                                                                                                                                98

                                                                                                                                                                                                Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                                geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                                2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                                Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                                On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                                99

                                                                                                                                                                                                Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                                SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                                Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                                100

                                                                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                                                                capital taux nval apregraves n ans

                                                                                                                                                                                                taux1val1 apregraves n ans

                                                                                                                                                                                                GainAbs GainRel

                                                                                                                                                                                                100 005 1 105 006 106 1 1

                                                                                                                                                                                                100 005 2 110 006 112 2 2

                                                                                                                                                                                                100 005 3 115 006 119 4 4

                                                                                                                                                                                                100 005 4 121 006 126 5 5

                                                                                                                                                                                                100 005 5 127 006 133 6 6

                                                                                                                                                                                                100 005 6 134 006 141 7 7

                                                                                                                                                                                                100 005 7 140 006 150 10 10

                                                                                                                                                                                                100 005 8 147 006 159 12 12

                                                                                                                                                                                                100 005 9 155 006 168 13 13

                                                                                                                                                                                                100 005 10 162 006 179 17 17

                                                                                                                                                                                                100 005 11 171 006 189 18 18

                                                                                                                                                                                                100 005 12 179 006 201 22 22

                                                                                                                                                                                                100 005 13 188 006 213 25 25

                                                                                                                                                                                                100 005 14 197 006 226 29 29

                                                                                                                                                                                                100 005 15 207 006 239 32 32

                                                                                                                                                                                                100 005 16 218 006 254 36 36

                                                                                                                                                                                                100 005 17 229 006 269 40 40

                                                                                                                                                                                                100 005 18 240 006 285 45 45

                                                                                                                                                                                                100 005 19 252 006 302 50 50

                                                                                                                                                                                                100 005 20 265 006 320 55 55

                                                                                                                                                                                                101

                                                                                                                                                                                                Seacuteries financiegraveres

                                                                                                                                                                                                102

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                financiers de la table Produits

                                                                                                                                                                                                bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                bull En ordre descendant de prix

                                                                                                                                                                                                bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                bull Plusieurs actionshellip

                                                                                                                                                                                                103

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                P prix

                                                                                                                                                                                                p3 200

                                                                                                                                                                                                p1 200

                                                                                                                                                                                                p2 400

                                                                                                                                                                                                p3 200

                                                                                                                                                                                                p4 100

                                                                                                                                                                                                p6 100

                                                                                                                                                                                                p5 300

                                                                                                                                                                                                p8 300

                                                                                                                                                                                                p7 400

                                                                                                                                                                                                p10 200

                                                                                                                                                                                                p12 300

                                                                                                                                                                                                p13 300

                                                                                                                                                                                                104

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                                                                                                105

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                106

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                107

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                108

                                                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                109

                                                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                110

                                                                                                                                                                                                GROUPING SETS

                                                                                                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                HAVING tot-qty gt 100

                                                                                                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                111

                                                                                                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                112

                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                                                                                113

                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                114

                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                Et le CUBE

                                                                                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                de certains nuls

                                                                                                                                                                                                115

                                                                                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                Wiley (publ)

                                                                                                                                                                                                116

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                117

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                118

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                119

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                120

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                121

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                122

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                123

                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                Exeacutecution autonome

                                                                                                                                                                                                124

                                                                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                hellip

                                                                                                                                                                                                125

                                                                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                126

                                                                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                148

                                                                                                                                                                                                FIN

                                                                                                                                                                                                149

                                                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                                                • Slide 3
                                                                                                                                                                                                • Synonymes
                                                                                                                                                                                                • Noms dattributs
                                                                                                                                                                                                • Slide 6
                                                                                                                                                                                                • Slide 7
                                                                                                                                                                                                • Slide 8
                                                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                                                • ANY et ALL
                                                                                                                                                                                                • Injection SQL
                                                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                                                • XOR
                                                                                                                                                                                                • IMP
                                                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                                                • Fonction DDB
                                                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                                                • Fonction PMT
                                                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                                                • GROUP BY
                                                                                                                                                                                                • LIST Function
                                                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                • Distribution
                                                                                                                                                                                                • Reacutesultat
                                                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                • Tendance
                                                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                • Slide 112
                                                                                                                                                                                                • Slide 113
                                                                                                                                                                                                • Slide 114
                                                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                • FIN
                                                                                                                                                                                                • Slide 149

                                                                                                                                                                                                  97

                                                                                                                                                                                                  Moyenne GlissanteMoyenne Glissantebull La construction srsquoapplique agrave drsquoautres fonctions

                                                                                                                                                                                                  glissantes

                                                                                                                                                                                                  bull CSUM (Cumulative (Running) Sums)

                                                                                                                                                                                                  bull MAVG

                                                                                                                                                                                                  bull MSUM

                                                                                                                                                                                                  bull MDIFF

                                                                                                                                                                                                  bull Voir Teradata + loin

                                                                                                                                                                                                  98

                                                                                                                                                                                                  Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                                  geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                                  2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                                  Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                                  On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                                  99

                                                                                                                                                                                                  Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                                  SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                                  Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                                  100

                                                                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                                                                  capital taux nval apregraves n ans

                                                                                                                                                                                                  taux1val1 apregraves n ans

                                                                                                                                                                                                  GainAbs GainRel

                                                                                                                                                                                                  100 005 1 105 006 106 1 1

                                                                                                                                                                                                  100 005 2 110 006 112 2 2

                                                                                                                                                                                                  100 005 3 115 006 119 4 4

                                                                                                                                                                                                  100 005 4 121 006 126 5 5

                                                                                                                                                                                                  100 005 5 127 006 133 6 6

                                                                                                                                                                                                  100 005 6 134 006 141 7 7

                                                                                                                                                                                                  100 005 7 140 006 150 10 10

                                                                                                                                                                                                  100 005 8 147 006 159 12 12

                                                                                                                                                                                                  100 005 9 155 006 168 13 13

                                                                                                                                                                                                  100 005 10 162 006 179 17 17

                                                                                                                                                                                                  100 005 11 171 006 189 18 18

                                                                                                                                                                                                  100 005 12 179 006 201 22 22

                                                                                                                                                                                                  100 005 13 188 006 213 25 25

                                                                                                                                                                                                  100 005 14 197 006 226 29 29

                                                                                                                                                                                                  100 005 15 207 006 239 32 32

                                                                                                                                                                                                  100 005 16 218 006 254 36 36

                                                                                                                                                                                                  100 005 17 229 006 269 40 40

                                                                                                                                                                                                  100 005 18 240 006 285 45 45

                                                                                                                                                                                                  100 005 19 252 006 302 50 50

                                                                                                                                                                                                  100 005 20 265 006 320 55 55

                                                                                                                                                                                                  101

                                                                                                                                                                                                  Seacuteries financiegraveres

                                                                                                                                                                                                  102

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                  financiers de la table Produits

                                                                                                                                                                                                  bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                  bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                  bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                  bull En ordre descendant de prix

                                                                                                                                                                                                  bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                  bull Plusieurs actionshellip

                                                                                                                                                                                                  103

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                  P prix

                                                                                                                                                                                                  p3 200

                                                                                                                                                                                                  p1 200

                                                                                                                                                                                                  p2 400

                                                                                                                                                                                                  p3 200

                                                                                                                                                                                                  p4 100

                                                                                                                                                                                                  p6 100

                                                                                                                                                                                                  p5 300

                                                                                                                                                                                                  p8 300

                                                                                                                                                                                                  p7 400

                                                                                                                                                                                                  p10 200

                                                                                                                                                                                                  p12 300

                                                                                                                                                                                                  p13 300

                                                                                                                                                                                                  104

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                  select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                  UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                  UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                  ORDER BY 4 desc 8 123

                                                                                                                                                                                                  105

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                  106

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                  107

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                  108

                                                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                  109

                                                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                  110

                                                                                                                                                                                                  GROUPING SETS

                                                                                                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                  HAVING tot-qty gt 100

                                                                                                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                  111

                                                                                                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                  112

                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                                                                                                  113

                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                  114

                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                  Et le CUBE

                                                                                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                  de certains nuls

                                                                                                                                                                                                  115

                                                                                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                  Wiley (publ)

                                                                                                                                                                                                  116

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                  117

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                  118

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  119

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  120

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  121

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  122

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                  123

                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                                                                  124

                                                                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                  hellip

                                                                                                                                                                                                  125

                                                                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                  126

                                                                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                  148

                                                                                                                                                                                                  FIN

                                                                                                                                                                                                  149

                                                                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                                                                  • Slide 3
                                                                                                                                                                                                  • Synonymes
                                                                                                                                                                                                  • Noms dattributs
                                                                                                                                                                                                  • Slide 6
                                                                                                                                                                                                  • Slide 7
                                                                                                                                                                                                  • Slide 8
                                                                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                                                                  • Expressions de valeur
                                                                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                                                                  • Limitations de NOT
                                                                                                                                                                                                  • ANY et ALL
                                                                                                                                                                                                  • Injection SQL
                                                                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                                                                  • XOR
                                                                                                                                                                                                  • IMP
                                                                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                  • Valeurs nulles
                                                                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                                                                  • Fonction DDB
                                                                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                                                                  • Fonction PMT
                                                                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                                                                  • GROUP BY
                                                                                                                                                                                                  • LIST Function
                                                                                                                                                                                                  • LIST Function (2)
                                                                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                                                                  • T-GROUP BY
                                                                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                  • Distribution
                                                                                                                                                                                                  • Reacutesultat
                                                                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                  • Tendance
                                                                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                  • GROUPING SETS
                                                                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                  • Slide 112
                                                                                                                                                                                                  • Slide 113
                                                                                                                                                                                                  • Slide 114
                                                                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                  • FIN
                                                                                                                                                                                                  • Slide 149

                                                                                                                                                                                                    98

                                                                                                                                                                                                    Seacuteries financiegraveres A partir de valeur(s) donneacutees on veut

                                                                                                                                                                                                    geacuteneacuterer une seacuterie chronologique1 Valeur drsquoun placement

                                                                                                                                                                                                    2 Taux drsquointeacuterecirct On veut la valeur apregraves 12hellip20 ans

                                                                                                                                                                                                    Pour le taux indiqueacute soit T1 Pour soit 1 de plus soit T2

                                                                                                                                                                                                    On veut voir aussi le gain que T2 offrirait par rapport au T1

                                                                                                                                                                                                    99

                                                                                                                                                                                                    Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                                    SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                                    Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                                    100

                                                                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                                                                    capital taux nval apregraves n ans

                                                                                                                                                                                                    taux1val1 apregraves n ans

                                                                                                                                                                                                    GainAbs GainRel

                                                                                                                                                                                                    100 005 1 105 006 106 1 1

                                                                                                                                                                                                    100 005 2 110 006 112 2 2

                                                                                                                                                                                                    100 005 3 115 006 119 4 4

                                                                                                                                                                                                    100 005 4 121 006 126 5 5

                                                                                                                                                                                                    100 005 5 127 006 133 6 6

                                                                                                                                                                                                    100 005 6 134 006 141 7 7

                                                                                                                                                                                                    100 005 7 140 006 150 10 10

                                                                                                                                                                                                    100 005 8 147 006 159 12 12

                                                                                                                                                                                                    100 005 9 155 006 168 13 13

                                                                                                                                                                                                    100 005 10 162 006 179 17 17

                                                                                                                                                                                                    100 005 11 171 006 189 18 18

                                                                                                                                                                                                    100 005 12 179 006 201 22 22

                                                                                                                                                                                                    100 005 13 188 006 213 25 25

                                                                                                                                                                                                    100 005 14 197 006 226 29 29

                                                                                                                                                                                                    100 005 15 207 006 239 32 32

                                                                                                                                                                                                    100 005 16 218 006 254 36 36

                                                                                                                                                                                                    100 005 17 229 006 269 40 40

                                                                                                                                                                                                    100 005 18 240 006 285 45 45

                                                                                                                                                                                                    100 005 19 252 006 302 50 50

                                                                                                                                                                                                    100 005 20 265 006 320 55 55

                                                                                                                                                                                                    101

                                                                                                                                                                                                    Seacuteries financiegraveres

                                                                                                                                                                                                    102

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                    financiers de la table Produits

                                                                                                                                                                                                    bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                    bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                    bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                    bull En ordre descendant de prix

                                                                                                                                                                                                    bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                    bull Plusieurs actionshellip

                                                                                                                                                                                                    103

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                    P prix

                                                                                                                                                                                                    p3 200

                                                                                                                                                                                                    p1 200

                                                                                                                                                                                                    p2 400

                                                                                                                                                                                                    p3 200

                                                                                                                                                                                                    p4 100

                                                                                                                                                                                                    p6 100

                                                                                                                                                                                                    p5 300

                                                                                                                                                                                                    p8 300

                                                                                                                                                                                                    p7 400

                                                                                                                                                                                                    p10 200

                                                                                                                                                                                                    p12 300

                                                                                                                                                                                                    p13 300

                                                                                                                                                                                                    104

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                    select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                    UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                    UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                    ORDER BY 4 desc 8 123

                                                                                                                                                                                                    105

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                    106

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                    107

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                    108

                                                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                    109

                                                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                    110

                                                                                                                                                                                                    GROUPING SETS

                                                                                                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                    HAVING tot-qty gt 100

                                                                                                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                    111

                                                                                                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                    112

                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                                                                                                    113

                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                    114

                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                    Et le CUBE

                                                                                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                    de certains nuls

                                                                                                                                                                                                    115

                                                                                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                    Wiley (publ)

                                                                                                                                                                                                    116

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                    117

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                    118

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    119

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    120

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    121

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    122

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                    123

                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                                                                    124

                                                                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                    hellip

                                                                                                                                                                                                    125

                                                                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                    126

                                                                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                    148

                                                                                                                                                                                                    FIN

                                                                                                                                                                                                    149

                                                                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                                                                    • Slide 3
                                                                                                                                                                                                    • Synonymes
                                                                                                                                                                                                    • Noms dattributs
                                                                                                                                                                                                    • Slide 6
                                                                                                                                                                                                    • Slide 7
                                                                                                                                                                                                    • Slide 8
                                                                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                                                                    • Expressions de valeur
                                                                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                                                                    • Limitations de NOT
                                                                                                                                                                                                    • ANY et ALL
                                                                                                                                                                                                    • Injection SQL
                                                                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                                                                    • XOR
                                                                                                                                                                                                    • IMP
                                                                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                    • Valeurs nulles
                                                                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                                                                    • Fonction DDB
                                                                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                                                                    • Fonction PMT
                                                                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                                                                    • GROUP BY
                                                                                                                                                                                                    • LIST Function
                                                                                                                                                                                                    • LIST Function (2)
                                                                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                                                                    • T-GROUP BY
                                                                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                    • Distribution
                                                                                                                                                                                                    • Reacutesultat
                                                                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                    • Tendance
                                                                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                    • GROUPING SETS
                                                                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                    • Slide 112
                                                                                                                                                                                                    • Slide 113
                                                                                                                                                                                                    • Slide 114
                                                                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                    • FIN
                                                                                                                                                                                                    • Slide 149

                                                                                                                                                                                                      99

                                                                                                                                                                                                      Seacuteries financiegraveresSELECT capital taux n int(capital(1+taux)^n) as [val apregraves n ans] round(taux+0012) as taux1 int(capital(1+taux1)^n) as [val1 apregraves n ans] [val1 apregraves n ans]- [val apregraves n ans] as GainAbs GainAbscapital100 as [GainRel]FROM EntiersUNION

                                                                                                                                                                                                      SELECT capital taux n+10 as n1 int(capital(1+taux)^n1) as [val apregraves n ans] round(taux+0012) as t int(capital(1+t)^n1) as x x- [val apregraves n ans] as z zcapital100 FROM Entiers

                                                                                                                                                                                                      Entiers est une table aux avec la colonne de12hellip10

                                                                                                                                                                                                      100

                                                                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                                                                      capital taux nval apregraves n ans

                                                                                                                                                                                                      taux1val1 apregraves n ans

                                                                                                                                                                                                      GainAbs GainRel

                                                                                                                                                                                                      100 005 1 105 006 106 1 1

                                                                                                                                                                                                      100 005 2 110 006 112 2 2

                                                                                                                                                                                                      100 005 3 115 006 119 4 4

                                                                                                                                                                                                      100 005 4 121 006 126 5 5

                                                                                                                                                                                                      100 005 5 127 006 133 6 6

                                                                                                                                                                                                      100 005 6 134 006 141 7 7

                                                                                                                                                                                                      100 005 7 140 006 150 10 10

                                                                                                                                                                                                      100 005 8 147 006 159 12 12

                                                                                                                                                                                                      100 005 9 155 006 168 13 13

                                                                                                                                                                                                      100 005 10 162 006 179 17 17

                                                                                                                                                                                                      100 005 11 171 006 189 18 18

                                                                                                                                                                                                      100 005 12 179 006 201 22 22

                                                                                                                                                                                                      100 005 13 188 006 213 25 25

                                                                                                                                                                                                      100 005 14 197 006 226 29 29

                                                                                                                                                                                                      100 005 15 207 006 239 32 32

                                                                                                                                                                                                      100 005 16 218 006 254 36 36

                                                                                                                                                                                                      100 005 17 229 006 269 40 40

                                                                                                                                                                                                      100 005 18 240 006 285 45 45

                                                                                                                                                                                                      100 005 19 252 006 302 50 50

                                                                                                                                                                                                      100 005 20 265 006 320 55 55

                                                                                                                                                                                                      101

                                                                                                                                                                                                      Seacuteries financiegraveres

                                                                                                                                                                                                      102

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                      financiers de la table Produits

                                                                                                                                                                                                      bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                      bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                      bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                      bull En ordre descendant de prix

                                                                                                                                                                                                      bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                      bull Plusieurs actionshellip

                                                                                                                                                                                                      103

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                      P prix

                                                                                                                                                                                                      p3 200

                                                                                                                                                                                                      p1 200

                                                                                                                                                                                                      p2 400

                                                                                                                                                                                                      p3 200

                                                                                                                                                                                                      p4 100

                                                                                                                                                                                                      p6 100

                                                                                                                                                                                                      p5 300

                                                                                                                                                                                                      p8 300

                                                                                                                                                                                                      p7 400

                                                                                                                                                                                                      p10 200

                                                                                                                                                                                                      p12 300

                                                                                                                                                                                                      p13 300

                                                                                                                                                                                                      104

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                      select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                      UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                      UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                      ORDER BY 4 desc 8 123

                                                                                                                                                                                                      105

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                      106

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                      bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                      bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                      bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                      107

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                      108

                                                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                      109

                                                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                      110

                                                                                                                                                                                                      GROUPING SETS

                                                                                                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                      HAVING tot-qty gt 100

                                                                                                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                      111

                                                                                                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                      112

                                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                                                                                                      113

                                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                                      114

                                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                                      Et le CUBE

                                                                                                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                      de certains nuls

                                                                                                                                                                                                      115

                                                                                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                      Wiley (publ)

                                                                                                                                                                                                      116

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                      117

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                      118

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      119

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      120

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      121

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      122

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                      123

                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                                                                      124

                                                                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                      hellip

                                                                                                                                                                                                      125

                                                                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                      126

                                                                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                      148

                                                                                                                                                                                                      FIN

                                                                                                                                                                                                      149

                                                                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                                                                      • Slide 3
                                                                                                                                                                                                      • Synonymes
                                                                                                                                                                                                      • Noms dattributs
                                                                                                                                                                                                      • Slide 6
                                                                                                                                                                                                      • Slide 7
                                                                                                                                                                                                      • Slide 8
                                                                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                                                                      • Expressions de valeur
                                                                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                                                                      • Limitations de NOT
                                                                                                                                                                                                      • ANY et ALL
                                                                                                                                                                                                      • Injection SQL
                                                                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                                                                      • XOR
                                                                                                                                                                                                      • IMP
                                                                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                      • Valeurs nulles
                                                                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                                                                      • Fonction DDB
                                                                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                                                                      • Fonction PMT
                                                                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                                                                      • GROUP BY
                                                                                                                                                                                                      • LIST Function
                                                                                                                                                                                                      • LIST Function (2)
                                                                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                                                                      • T-GROUP BY
                                                                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                      • Distribution
                                                                                                                                                                                                      • Reacutesultat
                                                                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                      • Tendance
                                                                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                      • GROUPING SETS
                                                                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                      • Slide 112
                                                                                                                                                                                                      • Slide 113
                                                                                                                                                                                                      • Slide 114
                                                                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                      • FIN
                                                                                                                                                                                                      • Slide 149

                                                                                                                                                                                                        100

                                                                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                                                                        capital taux nval apregraves n ans

                                                                                                                                                                                                        taux1val1 apregraves n ans

                                                                                                                                                                                                        GainAbs GainRel

                                                                                                                                                                                                        100 005 1 105 006 106 1 1

                                                                                                                                                                                                        100 005 2 110 006 112 2 2

                                                                                                                                                                                                        100 005 3 115 006 119 4 4

                                                                                                                                                                                                        100 005 4 121 006 126 5 5

                                                                                                                                                                                                        100 005 5 127 006 133 6 6

                                                                                                                                                                                                        100 005 6 134 006 141 7 7

                                                                                                                                                                                                        100 005 7 140 006 150 10 10

                                                                                                                                                                                                        100 005 8 147 006 159 12 12

                                                                                                                                                                                                        100 005 9 155 006 168 13 13

                                                                                                                                                                                                        100 005 10 162 006 179 17 17

                                                                                                                                                                                                        100 005 11 171 006 189 18 18

                                                                                                                                                                                                        100 005 12 179 006 201 22 22

                                                                                                                                                                                                        100 005 13 188 006 213 25 25

                                                                                                                                                                                                        100 005 14 197 006 226 29 29

                                                                                                                                                                                                        100 005 15 207 006 239 32 32

                                                                                                                                                                                                        100 005 16 218 006 254 36 36

                                                                                                                                                                                                        100 005 17 229 006 269 40 40

                                                                                                                                                                                                        100 005 18 240 006 285 45 45

                                                                                                                                                                                                        100 005 19 252 006 302 50 50

                                                                                                                                                                                                        100 005 20 265 006 320 55 55

                                                                                                                                                                                                        101

                                                                                                                                                                                                        Seacuteries financiegraveres

                                                                                                                                                                                                        102

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                        financiers de la table Produits

                                                                                                                                                                                                        bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                        bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                        bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                        bull En ordre descendant de prix

                                                                                                                                                                                                        bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                        bull Plusieurs actionshellip

                                                                                                                                                                                                        103

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                        P prix

                                                                                                                                                                                                        p3 200

                                                                                                                                                                                                        p1 200

                                                                                                                                                                                                        p2 400

                                                                                                                                                                                                        p3 200

                                                                                                                                                                                                        p4 100

                                                                                                                                                                                                        p6 100

                                                                                                                                                                                                        p5 300

                                                                                                                                                                                                        p8 300

                                                                                                                                                                                                        p7 400

                                                                                                                                                                                                        p10 200

                                                                                                                                                                                                        p12 300

                                                                                                                                                                                                        p13 300

                                                                                                                                                                                                        104

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                        select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                        UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                        UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                        ORDER BY 4 desc 8 123

                                                                                                                                                                                                        105

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                        106

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                        bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                        bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                        bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                        107

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                        Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                        bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                        bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                        bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                        108

                                                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                        109

                                                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                        110

                                                                                                                                                                                                        GROUPING SETS

                                                                                                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                        HAVING tot-qty gt 100

                                                                                                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                        111

                                                                                                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                        112

                                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                                                                                                        113

                                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                                        114

                                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                                        Et le CUBE

                                                                                                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                        de certains nuls

                                                                                                                                                                                                        115

                                                                                                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                        Wiley (publ)

                                                                                                                                                                                                        116

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                        117

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                        118

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        119

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        120

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        121

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        122

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                        123

                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                        Exeacutecution autonome

                                                                                                                                                                                                        124

                                                                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                        hellip

                                                                                                                                                                                                        125

                                                                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                        126

                                                                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                        148

                                                                                                                                                                                                        FIN

                                                                                                                                                                                                        149

                                                                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                                                                        • Slide 3
                                                                                                                                                                                                        • Synonymes
                                                                                                                                                                                                        • Noms dattributs
                                                                                                                                                                                                        • Slide 6
                                                                                                                                                                                                        • Slide 7
                                                                                                                                                                                                        • Slide 8
                                                                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                                                                        • Expressions de valeur
                                                                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                                                                        • Limitations de NOT
                                                                                                                                                                                                        • ANY et ALL
                                                                                                                                                                                                        • Injection SQL
                                                                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                                                                        • XOR
                                                                                                                                                                                                        • IMP
                                                                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                        • Valeurs nulles
                                                                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                                                                        • Fonction DDB
                                                                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                                                                        • Fonction PMT
                                                                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                                                                        • GROUP BY
                                                                                                                                                                                                        • LIST Function
                                                                                                                                                                                                        • LIST Function (2)
                                                                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                                                                        • T-GROUP BY
                                                                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                        • Distribution
                                                                                                                                                                                                        • Reacutesultat
                                                                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                        • Tendance
                                                                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                        • GROUPING SETS
                                                                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                        • Slide 112
                                                                                                                                                                                                        • Slide 113
                                                                                                                                                                                                        • Slide 114
                                                                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                        • FIN
                                                                                                                                                                                                        • Slide 149

                                                                                                                                                                                                          101

                                                                                                                                                                                                          Seacuteries financiegraveres

                                                                                                                                                                                                          102

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                          financiers de la table Produits

                                                                                                                                                                                                          bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                          bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                          bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                          bull En ordre descendant de prix

                                                                                                                                                                                                          bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                          bull Plusieurs actionshellip

                                                                                                                                                                                                          103

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                          P prix

                                                                                                                                                                                                          p3 200

                                                                                                                                                                                                          p1 200

                                                                                                                                                                                                          p2 400

                                                                                                                                                                                                          p3 200

                                                                                                                                                                                                          p4 100

                                                                                                                                                                                                          p6 100

                                                                                                                                                                                                          p5 300

                                                                                                                                                                                                          p8 300

                                                                                                                                                                                                          p7 400

                                                                                                                                                                                                          p10 200

                                                                                                                                                                                                          p12 300

                                                                                                                                                                                                          p13 300

                                                                                                                                                                                                          104

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                          select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                          UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                          UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                          ORDER BY 4 desc 8 123

                                                                                                                                                                                                          105

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                          106

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                          bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                          bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                          bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                          107

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                          Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                          bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                          bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                          bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                          108

                                                                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                          ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                          Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                          109

                                                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                          110

                                                                                                                                                                                                          GROUPING SETS

                                                                                                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                          HAVING tot-qty gt 100

                                                                                                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                          111

                                                                                                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                          112

                                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                                                                                                          113

                                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                                          114

                                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                                          Et le CUBE

                                                                                                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                          de certains nuls

                                                                                                                                                                                                          115

                                                                                                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                          Wiley (publ)

                                                                                                                                                                                                          116

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                          117

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                          118

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          119

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          120

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          121

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          122

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                          123

                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                          Exeacutecution autonome

                                                                                                                                                                                                          124

                                                                                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                          hellip

                                                                                                                                                                                                          125

                                                                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                          126

                                                                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                          148

                                                                                                                                                                                                          FIN

                                                                                                                                                                                                          149

                                                                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                                                                          • Slide 3
                                                                                                                                                                                                          • Synonymes
                                                                                                                                                                                                          • Noms dattributs
                                                                                                                                                                                                          • Slide 6
                                                                                                                                                                                                          • Slide 7
                                                                                                                                                                                                          • Slide 8
                                                                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                                                                          • Expressions de valeur
                                                                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                                                                          • Limitations de NOT
                                                                                                                                                                                                          • ANY et ALL
                                                                                                                                                                                                          • Injection SQL
                                                                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                                                                          • XOR
                                                                                                                                                                                                          • IMP
                                                                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                          • Valeurs nulles
                                                                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                                                                          • Fonction DDB
                                                                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                                                                          • Fonction PMT
                                                                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                                                                          • GROUP BY
                                                                                                                                                                                                          • LIST Function
                                                                                                                                                                                                          • LIST Function (2)
                                                                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                                                                          • T-GROUP BY
                                                                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                          • Distribution
                                                                                                                                                                                                          • Reacutesultat
                                                                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                          • Tendance
                                                                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                          • GROUPING SETS
                                                                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                          • Slide 112
                                                                                                                                                                                                          • Slide 113
                                                                                                                                                                                                          • Slide 114
                                                                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                          • FIN
                                                                                                                                                                                                          • Slide 149

                                                                                                                                                                                                            102

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille bull On veut acheter une collection de produits

                                                                                                                                                                                                            financiers de la table Produits

                                                                                                                                                                                                            bull Dans la limite L de la somme donneacutee

                                                                                                                                                                                                            bull Jusqursquoagrave k produit (k = 3 pex) par ensemble

                                                                                                                                                                                                            bull On veut examiner jusqursquoagrave i collections (i = 20 pex) de prix (cumuleacute) le plus proche de L

                                                                                                                                                                                                            bull En ordre descendant de prix

                                                                                                                                                                                                            bull On peut choisir un mecircme produit plusieurs fois pour former une collection

                                                                                                                                                                                                            bull Plusieurs actionshellip

                                                                                                                                                                                                            103

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                            P prix

                                                                                                                                                                                                            p3 200

                                                                                                                                                                                                            p1 200

                                                                                                                                                                                                            p2 400

                                                                                                                                                                                                            p3 200

                                                                                                                                                                                                            p4 100

                                                                                                                                                                                                            p6 100

                                                                                                                                                                                                            p5 300

                                                                                                                                                                                                            p8 300

                                                                                                                                                                                                            p7 400

                                                                                                                                                                                                            p10 200

                                                                                                                                                                                                            p12 300

                                                                                                                                                                                                            p13 300

                                                                                                                                                                                                            104

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                            select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                            UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                            UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                            ORDER BY 4 desc 8 123

                                                                                                                                                                                                            105

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                            106

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                            bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                            bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                            bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                            107

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                            Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                            bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                            bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                            bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                            108

                                                                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                            ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                            Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                            109

                                                                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                            CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                            Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                            d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                            droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                            110

                                                                                                                                                                                                            GROUPING SETS

                                                                                                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                            HAVING tot-qty gt 100

                                                                                                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                            111

                                                                                                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                            112

                                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                                                                                                            113

                                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                                            114

                                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                                            Et le CUBE

                                                                                                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                            de certains nuls

                                                                                                                                                                                                            115

                                                                                                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                            Wiley (publ)

                                                                                                                                                                                                            116

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                            117

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                            118

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            119

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            120

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            121

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            122

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                            123

                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                            Exeacutecution autonome

                                                                                                                                                                                                            124

                                                                                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                            hellip

                                                                                                                                                                                                            125

                                                                                                                                                                                                            Liste de Choix Multibase

                                                                                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                            126

                                                                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                            148

                                                                                                                                                                                                            FIN

                                                                                                                                                                                                            149

                                                                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                                                                            • Slide 3
                                                                                                                                                                                                            • Synonymes
                                                                                                                                                                                                            • Noms dattributs
                                                                                                                                                                                                            • Slide 6
                                                                                                                                                                                                            • Slide 7
                                                                                                                                                                                                            • Slide 8
                                                                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                                                                            • Expressions de valeur
                                                                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                                                                            • Limitations de NOT
                                                                                                                                                                                                            • ANY et ALL
                                                                                                                                                                                                            • Injection SQL
                                                                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                                                                            • XOR
                                                                                                                                                                                                            • IMP
                                                                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                            • Valeurs nulles
                                                                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                                                                            • Fonction DDB
                                                                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                                                                            • Fonction PMT
                                                                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                                                                            • GROUP BY
                                                                                                                                                                                                            • LIST Function
                                                                                                                                                                                                            • LIST Function (2)
                                                                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                                                                            • T-GROUP BY
                                                                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                            • Distribution
                                                                                                                                                                                                            • Reacutesultat
                                                                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                            • Tendance
                                                                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                            • GROUPING SETS
                                                                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                            • Slide 112
                                                                                                                                                                                                            • Slide 113
                                                                                                                                                                                                            • Slide 114
                                                                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                            • FIN
                                                                                                                                                                                                            • Slide 149

                                                                                                                                                                                                              103

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Produits

                                                                                                                                                                                                              P prix

                                                                                                                                                                                                              p3 200

                                                                                                                                                                                                              p1 200

                                                                                                                                                                                                              p2 400

                                                                                                                                                                                                              p3 200

                                                                                                                                                                                                              p4 100

                                                                                                                                                                                                              p6 100

                                                                                                                                                                                                              p5 300

                                                                                                                                                                                                              p8 300

                                                                                                                                                                                                              p7 400

                                                                                                                                                                                                              p10 200

                                                                                                                                                                                                              p12 300

                                                                                                                                                                                                              p13 300

                                                                                                                                                                                                              104

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                              select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                              UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                              UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                              ORDER BY 4 desc 8 123

                                                                                                                                                                                                              105

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                              106

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                              bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                              bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                              bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                              107

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                              Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                              bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                              bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                              bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                              108

                                                                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                              ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                              Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                              109

                                                                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                              CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                              Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                              d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                              droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                              110

                                                                                                                                                                                                              GROUPING SETS

                                                                                                                                                                                                              On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                              le groupe () est constitueacute de toute la table

                                                                                                                                                                                                              SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                              WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                              GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                              HAVING tot-qty gt 100

                                                                                                                                                                                                              Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                              111

                                                                                                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                              112

                                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                                                                                                              113

                                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                                              114

                                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                                              Et le CUBE

                                                                                                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                              de certains nuls

                                                                                                                                                                                                              115

                                                                                                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                              Wiley (publ)

                                                                                                                                                                                                              116

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                              117

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                              118

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              119

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              120

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              121

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              122

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                              123

                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                              Exeacutecution autonome

                                                                                                                                                                                                              124

                                                                                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                              hellip

                                                                                                                                                                                                              125

                                                                                                                                                                                                              Liste de Choix Multibase

                                                                                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                              126

                                                                                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                              148

                                                                                                                                                                                                              FIN

                                                                                                                                                                                                              149

                                                                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                                                                              • Slide 3
                                                                                                                                                                                                              • Synonymes
                                                                                                                                                                                                              • Noms dattributs
                                                                                                                                                                                                              • Slide 6
                                                                                                                                                                                                              • Slide 7
                                                                                                                                                                                                              • Slide 8
                                                                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                                                                              • Expressions de valeur
                                                                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                                                                              • Limitations de NOT
                                                                                                                                                                                                              • ANY et ALL
                                                                                                                                                                                                              • Injection SQL
                                                                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                                                                              • XOR
                                                                                                                                                                                                              • IMP
                                                                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                              • Valeurs nulles
                                                                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                                                                              • Fonction DDB
                                                                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                                                                              • Fonction PMT
                                                                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                                                                              • GROUP BY
                                                                                                                                                                                                              • LIST Function
                                                                                                                                                                                                              • LIST Function (2)
                                                                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                                                                              • T-GROUP BY
                                                                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                              • Distribution
                                                                                                                                                                                                              • Reacutesultat
                                                                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                              • Tendance
                                                                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                              • GROUPING SETS
                                                                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                              • Slide 112
                                                                                                                                                                                                              • Slide 113
                                                                                                                                                                                                              • Slide 114
                                                                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                              • FIN
                                                                                                                                                                                                              • Slide 149

                                                                                                                                                                                                                104

                                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille Parameters [Investissement ] Integer

                                                                                                                                                                                                                select TOP 20 FROM (SELECT P[p] as Produit1 as Produit2 as Produit3 Pprix as PrixCumuleacute as Prix1 as Prix2 as Prix3 1 as Nbre [Investissement ] as Investissement FROM Produits P where pprix lt= [Investissement ]

                                                                                                                                                                                                                UnionSELECT X[p] as Produit1 Y[p] as Produit2 as Produit3 Xprix+Yprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 as Prix3 2 as Nbre [Investissement ] FROM Produits X Produits Y where Xprix+Yprix lt= [Investissement ] and X[p] lt= Y[p] )

                                                                                                                                                                                                                UNIONSELECT X[p] as Produit1 Y[p] as Produit2 Z[p] as Produit3 Xprix+Yprix+Zprix as PrixCumuleacute Xprix as Prix1 Yprix as Prix2 Zprix as Prix3 3 as Nbre [Investissement ] FROM Produits X Produits Y Produits Z where Xprix+Yprix+Zprix lt= [Investissement ] and X[p] lt= Y[p] and Y[p] lt= Z[p]

                                                                                                                                                                                                                ORDER BY 4 desc 8 123

                                                                                                                                                                                                                105

                                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                                106

                                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                                bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                                bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                                107

                                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                                bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                                bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                                108

                                                                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                                109

                                                                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                                d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                                110

                                                                                                                                                                                                                GROUPING SETS

                                                                                                                                                                                                                On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                HAVING tot-qty gt 100

                                                                                                                                                                                                                Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                111

                                                                                                                                                                                                                Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                112

                                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                113

                                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                                114

                                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                                Et le CUBE

                                                                                                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                de certains nuls

                                                                                                                                                                                                                115

                                                                                                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                Wiley (publ)

                                                                                                                                                                                                                116

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                117

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                118

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                119

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                120

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                121

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                122

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                123

                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                Exeacutecution autonome

                                                                                                                                                                                                                124

                                                                                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                hellip

                                                                                                                                                                                                                125

                                                                                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                126

                                                                                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                148

                                                                                                                                                                                                                FIN

                                                                                                                                                                                                                149

                                                                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                                                                • Slide 3
                                                                                                                                                                                                                • Synonymes
                                                                                                                                                                                                                • Noms dattributs
                                                                                                                                                                                                                • Slide 6
                                                                                                                                                                                                                • Slide 7
                                                                                                                                                                                                                • Slide 8
                                                                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                                                                • ANY et ALL
                                                                                                                                                                                                                • Injection SQL
                                                                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                • XOR
                                                                                                                                                                                                                • IMP
                                                                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                • Fonction DDB
                                                                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                                                                • Fonction PMT
                                                                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                                                                • GROUP BY
                                                                                                                                                                                                                • LIST Function
                                                                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                • Distribution
                                                                                                                                                                                                                • Reacutesultat
                                                                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                • Tendance
                                                                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                • Slide 112
                                                                                                                                                                                                                • Slide 113
                                                                                                                                                                                                                • Slide 114
                                                                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                • FIN
                                                                                                                                                                                                                • Slide 149

                                                                                                                                                                                                                  105

                                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Creacuteation drsquoun Portefeuille

                                                                                                                                                                                                                  106

                                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                  bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                                  bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                                  bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                                  107

                                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                  Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                  bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                                  bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                                  bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                                  108

                                                                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                  ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                  Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                                  109

                                                                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                  CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                  Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                                  d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                  droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                                  110

                                                                                                                                                                                                                  GROUPING SETS

                                                                                                                                                                                                                  On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                  le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                  SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                  WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                  GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                  HAVING tot-qty gt 100

                                                                                                                                                                                                                  Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                  111

                                                                                                                                                                                                                  Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                  Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                  utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                  Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                  112

                                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                                  Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                  113

                                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                                  114

                                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                                  Et le CUBE

                                                                                                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                  de certains nuls

                                                                                                                                                                                                                  115

                                                                                                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                  Wiley (publ)

                                                                                                                                                                                                                  116

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                  117

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                  118

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  119

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  120

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  121

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  122

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                  123

                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                                                                                  124

                                                                                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                  hellip

                                                                                                                                                                                                                  125

                                                                                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                  126

                                                                                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                  148

                                                                                                                                                                                                                  FIN

                                                                                                                                                                                                                  149

                                                                                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                                                                                  • Slide 3
                                                                                                                                                                                                                  • Synonymes
                                                                                                                                                                                                                  • Noms dattributs
                                                                                                                                                                                                                  • Slide 6
                                                                                                                                                                                                                  • Slide 7
                                                                                                                                                                                                                  • Slide 8
                                                                                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                                                                                  • Expressions de valeur
                                                                                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                                                                                  • Limitations de NOT
                                                                                                                                                                                                                  • ANY et ALL
                                                                                                                                                                                                                  • Injection SQL
                                                                                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                  • XOR
                                                                                                                                                                                                                  • IMP
                                                                                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                  • Valeurs nulles
                                                                                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                  • Fonction DDB
                                                                                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                                                                                  • Fonction PMT
                                                                                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                                                                                  • GROUP BY
                                                                                                                                                                                                                  • LIST Function
                                                                                                                                                                                                                  • LIST Function (2)
                                                                                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                                                                                  • T-GROUP BY
                                                                                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                  • Distribution
                                                                                                                                                                                                                  • Reacutesultat
                                                                                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                  • Tendance
                                                                                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                  • GROUPING SETS
                                                                                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                  • Slide 112
                                                                                                                                                                                                                  • Slide 113
                                                                                                                                                                                                                  • Slide 114
                                                                                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                  • FIN
                                                                                                                                                                                                                  • Slide 149

                                                                                                                                                                                                                    106

                                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                    bull Pourquoi la requecircte est comme elle est bull Comment elle changerait

                                                                                                                                                                                                                    bull Si lrsquoon ne pouvait pas choisir un mecircme produit dans la collection

                                                                                                                                                                                                                    bull Si lrsquoon devait preacutesenter au max X meilleures proposition drsquoun produit Y de 2 et Z de 3 agrave la fois

                                                                                                                                                                                                                    107

                                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                    Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                    bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                                    bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                                    bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                                    108

                                                                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                    ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                    Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                                    109

                                                                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                    CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                    Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                                    d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                    droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                                    110

                                                                                                                                                                                                                    GROUPING SETS

                                                                                                                                                                                                                    On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                    le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                    SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                    WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                    GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                    HAVING tot-qty gt 100

                                                                                                                                                                                                                    Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                    111

                                                                                                                                                                                                                    Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                    Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                    utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                    Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                    112

                                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                                    Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                    113

                                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                                    114

                                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                                    Et le CUBE

                                                                                                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                    de certains nuls

                                                                                                                                                                                                                    115

                                                                                                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                    Wiley (publ)

                                                                                                                                                                                                                    116

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                    117

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                    118

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    119

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    120

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    121

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    122

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                    123

                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                                                                                    124

                                                                                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                    hellip

                                                                                                                                                                                                                    125

                                                                                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                    126

                                                                                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                    148

                                                                                                                                                                                                                    FIN

                                                                                                                                                                                                                    149

                                                                                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                                                                                    • Slide 3
                                                                                                                                                                                                                    • Synonymes
                                                                                                                                                                                                                    • Noms dattributs
                                                                                                                                                                                                                    • Slide 6
                                                                                                                                                                                                                    • Slide 7
                                                                                                                                                                                                                    • Slide 8
                                                                                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                                                                                    • Expressions de valeur
                                                                                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                                                                                    • Limitations de NOT
                                                                                                                                                                                                                    • ANY et ALL
                                                                                                                                                                                                                    • Injection SQL
                                                                                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                    • XOR
                                                                                                                                                                                                                    • IMP
                                                                                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                    • Valeurs nulles
                                                                                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                    • Fonction DDB
                                                                                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                                                                                    • Fonction PMT
                                                                                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                                                                                    • GROUP BY
                                                                                                                                                                                                                    • LIST Function
                                                                                                                                                                                                                    • LIST Function (2)
                                                                                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                                                                                    • T-GROUP BY
                                                                                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                    • Distribution
                                                                                                                                                                                                                    • Reacutesultat
                                                                                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                    • Tendance
                                                                                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                    • GROUPING SETS
                                                                                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                    • Slide 112
                                                                                                                                                                                                                    • Slide 113
                                                                                                                                                                                                                    • Slide 114
                                                                                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                    • FIN
                                                                                                                                                                                                                    • Slide 149

                                                                                                                                                                                                                      107

                                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                      Creacuteation drsquoun Portefeuille Discussion

                                                                                                                                                                                                                      bull Si Produit a 10 000 produits combien drsquoopeacuterations drsquoaccegraves agrave un tuple faudrait-t-il agrave 1egravere vue

                                                                                                                                                                                                                      bull Peut-on espeacuterer k = 4 ou 5 bull Autres domaines drsquoapplications du problegraveme

                                                                                                                                                                                                                      bull Avez-vous entendu du problegraveme dit du laquo sac agrave dos raquo

                                                                                                                                                                                                                      108

                                                                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                      ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                      Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                                      109

                                                                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                      CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                      Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                                      d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                      droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                                      110

                                                                                                                                                                                                                      GROUPING SETS

                                                                                                                                                                                                                      On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                      le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                      SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                      WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                      GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                      HAVING tot-qty gt 100

                                                                                                                                                                                                                      Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                      111

                                                                                                                                                                                                                      Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                      Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                      utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                      Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                      112

                                                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                                                      Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                      113

                                                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                                                      114

                                                                                                                                                                                                                      ROLLUP

                                                                                                                                                                                                                      Et le CUBE

                                                                                                                                                                                                                      Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                      de certains nuls

                                                                                                                                                                                                                      115

                                                                                                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                      Wiley (publ)

                                                                                                                                                                                                                      116

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                      117

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                      118

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      119

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      120

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      121

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      122

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                      123

                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                                                                                      124

                                                                                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                      hellip

                                                                                                                                                                                                                      125

                                                                                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                      126

                                                                                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                      148

                                                                                                                                                                                                                      FIN

                                                                                                                                                                                                                      149

                                                                                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                                                                                      • Slide 3
                                                                                                                                                                                                                      • Synonymes
                                                                                                                                                                                                                      • Noms dattributs
                                                                                                                                                                                                                      • Slide 6
                                                                                                                                                                                                                      • Slide 7
                                                                                                                                                                                                                      • Slide 8
                                                                                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                                                                                      • Expressions de valeur
                                                                                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                                                                                      • Limitations de NOT
                                                                                                                                                                                                                      • ANY et ALL
                                                                                                                                                                                                                      • Injection SQL
                                                                                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                      • XOR
                                                                                                                                                                                                                      • IMP
                                                                                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                      • Valeurs nulles
                                                                                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                      • Fonction DDB
                                                                                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                                                                                      • Fonction PMT
                                                                                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                                                                                      • GROUP BY
                                                                                                                                                                                                                      • LIST Function
                                                                                                                                                                                                                      • LIST Function (2)
                                                                                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                                                                                      • T-GROUP BY
                                                                                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                      • Distribution
                                                                                                                                                                                                                      • Reacutesultat
                                                                                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                      • Tendance
                                                                                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                      • GROUPING SETS
                                                                                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                      • Slide 112
                                                                                                                                                                                                                      • Slide 113
                                                                                                                                                                                                                      • Slide 114
                                                                                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                      • FIN
                                                                                                                                                                                                                      • Slide 149

                                                                                                                                                                                                                        108

                                                                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                        ROLLUP(DB2 amp SQL-Server)

                                                                                                                                                                                                                        Groupements multiples (super-groupes) selon une dimensionndash l rsquoordre des attributs dans la clause a l rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY ROLLUP (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nulls que lrsquoon verra plus tard

                                                                                                                                                                                                                        109

                                                                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                        CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                        Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                                        d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                        droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                                        110

                                                                                                                                                                                                                        GROUPING SETS

                                                                                                                                                                                                                        On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                        le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                        SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                        WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                        GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                        HAVING tot-qty gt 100

                                                                                                                                                                                                                        Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                        111

                                                                                                                                                                                                                        Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                        Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                        utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                        Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                        112

                                                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                                                        Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                        113

                                                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                                                        114

                                                                                                                                                                                                                        ROLLUP

                                                                                                                                                                                                                        Et le CUBE

                                                                                                                                                                                                                        Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                        de certains nuls

                                                                                                                                                                                                                        115

                                                                                                                                                                                                                        Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                        ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                        Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                        Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                        Wiley (publ)

                                                                                                                                                                                                                        116

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                        117

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                        118

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        119

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        120

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        121

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        122

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                        123

                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                        Exeacutecution autonome

                                                                                                                                                                                                                        124

                                                                                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                        hellip

                                                                                                                                                                                                                        125

                                                                                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                        126

                                                                                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                        148

                                                                                                                                                                                                                        FIN

                                                                                                                                                                                                                        149

                                                                                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                                                                                        • Slide 3
                                                                                                                                                                                                                        • Synonymes
                                                                                                                                                                                                                        • Noms dattributs
                                                                                                                                                                                                                        • Slide 6
                                                                                                                                                                                                                        • Slide 7
                                                                                                                                                                                                                        • Slide 8
                                                                                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                                                                                        • Expressions de valeur
                                                                                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                                                                                        • Limitations de NOT
                                                                                                                                                                                                                        • ANY et ALL
                                                                                                                                                                                                                        • Injection SQL
                                                                                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                        • XOR
                                                                                                                                                                                                                        • IMP
                                                                                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                        • Valeurs nulles
                                                                                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                        • Fonction DDB
                                                                                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                                                                                        • Fonction PMT
                                                                                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                                                                                        • GROUP BY
                                                                                                                                                                                                                        • LIST Function
                                                                                                                                                                                                                        • LIST Function (2)
                                                                                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                                                                                        • T-GROUP BY
                                                                                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                        • Distribution
                                                                                                                                                                                                                        • Reacutesultat
                                                                                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                        • Tendance
                                                                                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                        • GROUPING SETS
                                                                                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                        • Slide 112
                                                                                                                                                                                                                        • Slide 113
                                                                                                                                                                                                                        • Slide 114
                                                                                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                        • FIN
                                                                                                                                                                                                                        • Slide 149

                                                                                                                                                                                                                          109

                                                                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                          CUBE(DB2 amp SQL-Server)

                                                                                                                                                                                                                          Groupements multiples selon toutes les dimensionsndash l rsquoordre des attributs dans la clause n rsquoa pas

                                                                                                                                                                                                                          d rsquoimportancendash les attributs sont progressivement laquo oublies raquo de

                                                                                                                                                                                                                          droite agrave gauche Remplace plusieurs requecirctes GROUP BYSELECT p sum (qty) as tot-qty from SSP P WHERE SP P = PP AND SP S = SSGROUP BY CUBE (P SCITY COLOR)HAVING tot-qty gt 100 Problegravemes avec des nuls que lrsquoon verra plus tard Opeacuteration bien plus chegravere que Rollupe N pour N attributs

                                                                                                                                                                                                                          110

                                                                                                                                                                                                                          GROUPING SETS

                                                                                                                                                                                                                          On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                          le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                          SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                          WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                          GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                          HAVING tot-qty gt 100

                                                                                                                                                                                                                          Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                          111

                                                                                                                                                                                                                          Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                          Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                          utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                          Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                          112

                                                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                                                          Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                          113

                                                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                                                          114

                                                                                                                                                                                                                          ROLLUP

                                                                                                                                                                                                                          Et le CUBE

                                                                                                                                                                                                                          Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                          de certains nuls

                                                                                                                                                                                                                          115

                                                                                                                                                                                                                          Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                          ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                          Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                          Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                          Wiley (publ)

                                                                                                                                                                                                                          116

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                          On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                          Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                          117

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                          118

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          119

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          120

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          121

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          122

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                          123

                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                          Exeacutecution autonome

                                                                                                                                                                                                                          124

                                                                                                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                          hellip

                                                                                                                                                                                                                          125

                                                                                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                          126

                                                                                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                          148

                                                                                                                                                                                                                          FIN

                                                                                                                                                                                                                          149

                                                                                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                                                                                          • Slide 3
                                                                                                                                                                                                                          • Synonymes
                                                                                                                                                                                                                          • Noms dattributs
                                                                                                                                                                                                                          • Slide 6
                                                                                                                                                                                                                          • Slide 7
                                                                                                                                                                                                                          • Slide 8
                                                                                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                                                                                          • Expressions de valeur
                                                                                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                                                                                          • Limitations de NOT
                                                                                                                                                                                                                          • ANY et ALL
                                                                                                                                                                                                                          • Injection SQL
                                                                                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                          • XOR
                                                                                                                                                                                                                          • IMP
                                                                                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                          • Valeurs nulles
                                                                                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                          • Fonction DDB
                                                                                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                                                                                          • Fonction PMT
                                                                                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                                                                                          • GROUP BY
                                                                                                                                                                                                                          • LIST Function
                                                                                                                                                                                                                          • LIST Function (2)
                                                                                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                                                                                          • T-GROUP BY
                                                                                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                          • Distribution
                                                                                                                                                                                                                          • Reacutesultat
                                                                                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                          • Tendance
                                                                                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                          • GROUPING SETS
                                                                                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                          • Slide 112
                                                                                                                                                                                                                          • Slide 113
                                                                                                                                                                                                                          • Slide 114
                                                                                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                          • FIN
                                                                                                                                                                                                                          • Slide 149

                                                                                                                                                                                                                            110

                                                                                                                                                                                                                            GROUPING SETS

                                                                                                                                                                                                                            On indique explicitement les groupesndash entre ()

                                                                                                                                                                                                                            le groupe () est constitueacute de toute la table

                                                                                                                                                                                                                            SELECT p sum (qty) as tot-qty from SSP P

                                                                                                                                                                                                                            WHERE SP P = PP AND SP S = SS

                                                                                                                                                                                                                            GROUP BY GROUPING SETS ((P SCITY COLOR) (P COLOR) ())

                                                                                                                                                                                                                            HAVING tot-qty gt 100

                                                                                                                                                                                                                            Problegravemes avec des nuls que lrsquoon verra plus tard

                                                                                                                                                                                                                            111

                                                                                                                                                                                                                            Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                            Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                            utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                            Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                            112

                                                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                                                            Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                            113

                                                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                                                            114

                                                                                                                                                                                                                            ROLLUP

                                                                                                                                                                                                                            Et le CUBE

                                                                                                                                                                                                                            Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                            de certains nuls

                                                                                                                                                                                                                            115

                                                                                                                                                                                                                            Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                            ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                            Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                            Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                            Wiley (publ)

                                                                                                                                                                                                                            116

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                            On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                            Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                            117

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                            118

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            119

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            120

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            121

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            122

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                            123

                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                            Exeacutecution autonome

                                                                                                                                                                                                                            124

                                                                                                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                            hellip

                                                                                                                                                                                                                            125

                                                                                                                                                                                                                            Liste de Choix Multibase

                                                                                                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                            126

                                                                                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                            148

                                                                                                                                                                                                                            FIN

                                                                                                                                                                                                                            149

                                                                                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                                                                                            • Slide 3
                                                                                                                                                                                                                            • Synonymes
                                                                                                                                                                                                                            • Noms dattributs
                                                                                                                                                                                                                            • Slide 6
                                                                                                                                                                                                                            • Slide 7
                                                                                                                                                                                                                            • Slide 8
                                                                                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                                                                                            • Expressions de valeur
                                                                                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                                                                                            • Limitations de NOT
                                                                                                                                                                                                                            • ANY et ALL
                                                                                                                                                                                                                            • Injection SQL
                                                                                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                            • XOR
                                                                                                                                                                                                                            • IMP
                                                                                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                            • Valeurs nulles
                                                                                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                            • Fonction DDB
                                                                                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                                                                                            • Fonction PMT
                                                                                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                                                                                            • GROUP BY
                                                                                                                                                                                                                            • LIST Function
                                                                                                                                                                                                                            • LIST Function (2)
                                                                                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                                                                                            • T-GROUP BY
                                                                                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                            • Distribution
                                                                                                                                                                                                                            • Reacutesultat
                                                                                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                            • Tendance
                                                                                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                            • GROUPING SETS
                                                                                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                            • Slide 112
                                                                                                                                                                                                                            • Slide 113
                                                                                                                                                                                                                            • Slide 114
                                                                                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                            • FIN
                                                                                                                                                                                                                            • Slide 149

                                                                                                                                                                                                                              111

                                                                                                                                                                                                                              Rollup Cube Grouping Setssous MsAccess

                                                                                                                                                                                                                              Il y en a pas On peut simuler ces manipulations en

                                                                                                                                                                                                                              utilisant ndash GROUP BYndash UNION ALLndash ORDER BY

                                                                                                                                                                                                                              Peut ecirctre laborieux pour le CUBE

                                                                                                                                                                                                                              112

                                                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                                                              Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                              113

                                                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                                                              114

                                                                                                                                                                                                                              ROLLUP

                                                                                                                                                                                                                              Et le CUBE

                                                                                                                                                                                                                              Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                              de certains nuls

                                                                                                                                                                                                                              115

                                                                                                                                                                                                                              Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                              ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                              Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                              Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                              Wiley (publ)

                                                                                                                                                                                                                              116

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                              On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                              Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                              117

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                              118

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              119

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              120

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              121

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              122

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                              123

                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                              Exeacutecution autonome

                                                                                                                                                                                                                              124

                                                                                                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                              hellip

                                                                                                                                                                                                                              125

                                                                                                                                                                                                                              Liste de Choix Multibase

                                                                                                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                              126

                                                                                                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                              148

                                                                                                                                                                                                                              FIN

                                                                                                                                                                                                                              149

                                                                                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                                                                                              • Slide 3
                                                                                                                                                                                                                              • Synonymes
                                                                                                                                                                                                                              • Noms dattributs
                                                                                                                                                                                                                              • Slide 6
                                                                                                                                                                                                                              • Slide 7
                                                                                                                                                                                                                              • Slide 8
                                                                                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                                                                                              • Expressions de valeur
                                                                                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                                                                                              • Limitations de NOT
                                                                                                                                                                                                                              • ANY et ALL
                                                                                                                                                                                                                              • Injection SQL
                                                                                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                              • XOR
                                                                                                                                                                                                                              • IMP
                                                                                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                              • Valeurs nulles
                                                                                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                              • Fonction DDB
                                                                                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                                                                                              • Fonction PMT
                                                                                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                                                                                              • GROUP BY
                                                                                                                                                                                                                              • LIST Function
                                                                                                                                                                                                                              • LIST Function (2)
                                                                                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                                                                                              • T-GROUP BY
                                                                                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                              • Distribution
                                                                                                                                                                                                                              • Reacutesultat
                                                                                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                              • Tendance
                                                                                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                              • GROUPING SETS
                                                                                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                              • Slide 112
                                                                                                                                                                                                                              • Slide 113
                                                                                                                                                                                                                              • Slide 114
                                                                                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                              • FIN
                                                                                                                                                                                                                              • Slide 149

                                                                                                                                                                                                                                112

                                                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                                                Remarquez le laquo null as cityraquo

                                                                                                                                                                                                                                113

                                                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                                                114

                                                                                                                                                                                                                                ROLLUP

                                                                                                                                                                                                                                Et le CUBE

                                                                                                                                                                                                                                Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                                de certains nuls

                                                                                                                                                                                                                                115

                                                                                                                                                                                                                                Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                                ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                                Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                                Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                                Wiley (publ)

                                                                                                                                                                                                                                116

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                                On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                                Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                                117

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                                118

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                119

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                120

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                121

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                122

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                123

                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                Exeacutecution autonome

                                                                                                                                                                                                                                124

                                                                                                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                hellip

                                                                                                                                                                                                                                125

                                                                                                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                126

                                                                                                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                148

                                                                                                                                                                                                                                FIN

                                                                                                                                                                                                                                149

                                                                                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                                                                                • Slide 3
                                                                                                                                                                                                                                • Synonymes
                                                                                                                                                                                                                                • Noms dattributs
                                                                                                                                                                                                                                • Slide 6
                                                                                                                                                                                                                                • Slide 7
                                                                                                                                                                                                                                • Slide 8
                                                                                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                                                                                • ANY et ALL
                                                                                                                                                                                                                                • Injection SQL
                                                                                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                • XOR
                                                                                                                                                                                                                                • IMP
                                                                                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                • Fonction DDB
                                                                                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                                                                                • Fonction PMT
                                                                                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                                                                                • GROUP BY
                                                                                                                                                                                                                                • LIST Function
                                                                                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                • Distribution
                                                                                                                                                                                                                                • Reacutesultat
                                                                                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                • Tendance
                                                                                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                • Slide 112
                                                                                                                                                                                                                                • Slide 113
                                                                                                                                                                                                                                • Slide 114
                                                                                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                • FIN
                                                                                                                                                                                                                                • Slide 149

                                                                                                                                                                                                                                  113

                                                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                                                  114

                                                                                                                                                                                                                                  ROLLUP

                                                                                                                                                                                                                                  Et le CUBE

                                                                                                                                                                                                                                  Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                                  de certains nuls

                                                                                                                                                                                                                                  115

                                                                                                                                                                                                                                  Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                                  ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                                  Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                                  Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                                  Wiley (publ)

                                                                                                                                                                                                                                  116

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                                  On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                                  Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                                  117

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                                  118

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  119

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  120

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  121

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  122

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                  123

                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                                                                                                  124

                                                                                                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                  hellip

                                                                                                                                                                                                                                  125

                                                                                                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                  126

                                                                                                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                  148

                                                                                                                                                                                                                                  FIN

                                                                                                                                                                                                                                  149

                                                                                                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                                                                                                  • Slide 3
                                                                                                                                                                                                                                  • Synonymes
                                                                                                                                                                                                                                  • Noms dattributs
                                                                                                                                                                                                                                  • Slide 6
                                                                                                                                                                                                                                  • Slide 7
                                                                                                                                                                                                                                  • Slide 8
                                                                                                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                                                                                                  • Expressions de valeur
                                                                                                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                                                                                                  • Limitations de NOT
                                                                                                                                                                                                                                  • ANY et ALL
                                                                                                                                                                                                                                  • Injection SQL
                                                                                                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                  • XOR
                                                                                                                                                                                                                                  • IMP
                                                                                                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                  • Valeurs nulles
                                                                                                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                  • Fonction DDB
                                                                                                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                                                                                                  • Fonction PMT
                                                                                                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                                                                                                  • GROUP BY
                                                                                                                                                                                                                                  • LIST Function
                                                                                                                                                                                                                                  • LIST Function (2)
                                                                                                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                                                                                                  • T-GROUP BY
                                                                                                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                  • Distribution
                                                                                                                                                                                                                                  • Reacutesultat
                                                                                                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                  • Tendance
                                                                                                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                  • GROUPING SETS
                                                                                                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                  • Slide 112
                                                                                                                                                                                                                                  • Slide 113
                                                                                                                                                                                                                                  • Slide 114
                                                                                                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                  • FIN
                                                                                                                                                                                                                                  • Slide 149

                                                                                                                                                                                                                                    114

                                                                                                                                                                                                                                    ROLLUP

                                                                                                                                                                                                                                    Et le CUBE

                                                                                                                                                                                                                                    Une solution pour l ambiguiumlteacute

                                                                                                                                                                                                                                    de certains nuls

                                                                                                                                                                                                                                    115

                                                                                                                                                                                                                                    Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                                    ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                                    Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                                    Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                                    Wiley (publ)

                                                                                                                                                                                                                                    116

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                                    On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                                    Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                                    117

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                                    118

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    119

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    120

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    121

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    122

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                    123

                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                                                                                                    124

                                                                                                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                    hellip

                                                                                                                                                                                                                                    125

                                                                                                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                    126

                                                                                                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                    148

                                                                                                                                                                                                                                    FIN

                                                                                                                                                                                                                                    149

                                                                                                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                                                                                                    • Slide 3
                                                                                                                                                                                                                                    • Synonymes
                                                                                                                                                                                                                                    • Noms dattributs
                                                                                                                                                                                                                                    • Slide 6
                                                                                                                                                                                                                                    • Slide 7
                                                                                                                                                                                                                                    • Slide 8
                                                                                                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                                                                                                    • Expressions de valeur
                                                                                                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                                                                                                    • Limitations de NOT
                                                                                                                                                                                                                                    • ANY et ALL
                                                                                                                                                                                                                                    • Injection SQL
                                                                                                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                    • XOR
                                                                                                                                                                                                                                    • IMP
                                                                                                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                    • Valeurs nulles
                                                                                                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                    • Fonction DDB
                                                                                                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                                                                                                    • Fonction PMT
                                                                                                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                                                                                                    • GROUP BY
                                                                                                                                                                                                                                    • LIST Function
                                                                                                                                                                                                                                    • LIST Function (2)
                                                                                                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                                                                                                    • T-GROUP BY
                                                                                                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                    • Distribution
                                                                                                                                                                                                                                    • Reacutesultat
                                                                                                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                    • Tendance
                                                                                                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                    • GROUPING SETS
                                                                                                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                    • Slide 112
                                                                                                                                                                                                                                    • Slide 113
                                                                                                                                                                                                                                    • Slide 114
                                                                                                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                    • FIN
                                                                                                                                                                                                                                    • Slide 149

                                                                                                                                                                                                                                      115

                                                                                                                                                                                                                                      Autres Opeacuterations Utiles Chasse aux valeurs inconnues

                                                                                                                                                                                                                                      ndash Deacutependances Fonctionnelles- Interpolation (lineacuteairehellip)

                                                                                                                                                                                                                                      Echelle logarithmique drsquoabscisses- Fonctions scalaires log int floor

                                                                                                                                                                                                                                      Livre de Tropashko (cours 1) Symbolic Data Analysis Billiard amp Diday

                                                                                                                                                                                                                                      Wiley (publ)

                                                                                                                                                                                                                                      116

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                                      On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                                      Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                                      117

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                                      118

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      119

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      120

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      121

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      122

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                      123

                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                                                                                                      124

                                                                                                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                      hellip

                                                                                                                                                                                                                                      125

                                                                                                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                      126

                                                                                                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                      148

                                                                                                                                                                                                                                      FIN

                                                                                                                                                                                                                                      149

                                                                                                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                                                                                                      • Slide 3
                                                                                                                                                                                                                                      • Synonymes
                                                                                                                                                                                                                                      • Noms dattributs
                                                                                                                                                                                                                                      • Slide 6
                                                                                                                                                                                                                                      • Slide 7
                                                                                                                                                                                                                                      • Slide 8
                                                                                                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                                                                                                      • Expressions de valeur
                                                                                                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                                                                                                      • Limitations de NOT
                                                                                                                                                                                                                                      • ANY et ALL
                                                                                                                                                                                                                                      • Injection SQL
                                                                                                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                      • XOR
                                                                                                                                                                                                                                      • IMP
                                                                                                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                      • Valeurs nulles
                                                                                                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                      • Fonction DDB
                                                                                                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                                                                                                      • Fonction PMT
                                                                                                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                                                                                                      • GROUP BY
                                                                                                                                                                                                                                      • LIST Function
                                                                                                                                                                                                                                      • LIST Function (2)
                                                                                                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                                                                                                      • T-GROUP BY
                                                                                                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                      • Distribution
                                                                                                                                                                                                                                      • Reacutesultat
                                                                                                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                      • Tendance
                                                                                                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                      • GROUPING SETS
                                                                                                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                      • Slide 112
                                                                                                                                                                                                                                      • Slide 113
                                                                                                                                                                                                                                      • Slide 114
                                                                                                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                      • FIN
                                                                                                                                                                                                                                      • Slide 149

                                                                                                                                                                                                                                        116

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        La requecircte de sous-table de MsAccess peut ecirctre parameacutetreacutee

                                                                                                                                                                                                                                        On voit par exemple pour SP la fraction que repreacutesente la piegravece examineacutee soit P2 par rapport au total QTY eacutegalement visible pour chaque fournisseur de la piegravece

                                                                                                                                                                                                                                        Seulement pour les fractions plus grandes qursquoun minimum parameacutetreacute

                                                                                                                                                                                                                                        117

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                                        118

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        119

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        120

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        121

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        122

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                        123

                                                                                                                                                                                                                                        Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                        Exeacutecution autonome

                                                                                                                                                                                                                                        124

                                                                                                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                        hellip

                                                                                                                                                                                                                                        125

                                                                                                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                        126

                                                                                                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                        148

                                                                                                                                                                                                                                        FIN

                                                                                                                                                                                                                                        149

                                                                                                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                                                                                                        • Slide 3
                                                                                                                                                                                                                                        • Synonymes
                                                                                                                                                                                                                                        • Noms dattributs
                                                                                                                                                                                                                                        • Slide 6
                                                                                                                                                                                                                                        • Slide 7
                                                                                                                                                                                                                                        • Slide 8
                                                                                                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                                                                                                        • Expressions de valeur
                                                                                                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                                                                                                        • Limitations de NOT
                                                                                                                                                                                                                                        • ANY et ALL
                                                                                                                                                                                                                                        • Injection SQL
                                                                                                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                        • XOR
                                                                                                                                                                                                                                        • IMP
                                                                                                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                        • Valeurs nulles
                                                                                                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                        • Fonction DDB
                                                                                                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                                                                                                        • Fonction PMT
                                                                                                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                                                                                                        • GROUP BY
                                                                                                                                                                                                                                        • LIST Function
                                                                                                                                                                                                                                        • LIST Function (2)
                                                                                                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                                                                                                        • T-GROUP BY
                                                                                                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                        • Distribution
                                                                                                                                                                                                                                        • Reacutesultat
                                                                                                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                        • Tendance
                                                                                                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                        • GROUPING SETS
                                                                                                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                        • Slide 112
                                                                                                                                                                                                                                        • Slide 113
                                                                                                                                                                                                                                        • Slide 114
                                                                                                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                        • FIN
                                                                                                                                                                                                                                        • Slide 149

                                                                                                                                                                                                                                          117

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          Deacutefinition de la sous-tablendash Noter le champs de liaison pegraverefils

                                                                                                                                                                                                                                          118

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          119

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          120

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          121

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          122

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                          123

                                                                                                                                                                                                                                          Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                          Exeacutecution autonome

                                                                                                                                                                                                                                          124

                                                                                                                                                                                                                                          Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                          ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                          Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                          hellip

                                                                                                                                                                                                                                          125

                                                                                                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                          126

                                                                                                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                          148

                                                                                                                                                                                                                                          FIN

                                                                                                                                                                                                                                          149

                                                                                                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                                                                                                          • Slide 3
                                                                                                                                                                                                                                          • Synonymes
                                                                                                                                                                                                                                          • Noms dattributs
                                                                                                                                                                                                                                          • Slide 6
                                                                                                                                                                                                                                          • Slide 7
                                                                                                                                                                                                                                          • Slide 8
                                                                                                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                                                                                                          • Expressions de valeur
                                                                                                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                                                                                                          • Limitations de NOT
                                                                                                                                                                                                                                          • ANY et ALL
                                                                                                                                                                                                                                          • Injection SQL
                                                                                                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                          • XOR
                                                                                                                                                                                                                                          • IMP
                                                                                                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                          • Valeurs nulles
                                                                                                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                          • Fonction DDB
                                                                                                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                                                                                                          • Fonction PMT
                                                                                                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                                                                                                          • GROUP BY
                                                                                                                                                                                                                                          • LIST Function
                                                                                                                                                                                                                                          • LIST Function (2)
                                                                                                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                                                                                                          • T-GROUP BY
                                                                                                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                          • Distribution
                                                                                                                                                                                                                                          • Reacutesultat
                                                                                                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                          • Tendance
                                                                                                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                          • GROUPING SETS
                                                                                                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                          • Slide 112
                                                                                                                                                                                                                                          • Slide 113
                                                                                                                                                                                                                                          • Slide 114
                                                                                                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                          • FIN
                                                                                                                                                                                                                                          • Slide 149

                                                                                                                                                                                                                                            118

                                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                            119

                                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                            120

                                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                            121

                                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                            122

                                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                            La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                            123

                                                                                                                                                                                                                                            Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                            Exeacutecution autonome

                                                                                                                                                                                                                                            124

                                                                                                                                                                                                                                            Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                            ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                            Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                            hellip

                                                                                                                                                                                                                                            125

                                                                                                                                                                                                                                            Liste de Choix Multibase

                                                                                                                                                                                                                                            bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                            SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                            126

                                                                                                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                            148

                                                                                                                                                                                                                                            FIN

                                                                                                                                                                                                                                            149

                                                                                                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                                                                                                            • Slide 3
                                                                                                                                                                                                                                            • Synonymes
                                                                                                                                                                                                                                            • Noms dattributs
                                                                                                                                                                                                                                            • Slide 6
                                                                                                                                                                                                                                            • Slide 7
                                                                                                                                                                                                                                            • Slide 8
                                                                                                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                                                                                                            • Expressions de valeur
                                                                                                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                                                                                                            • Limitations de NOT
                                                                                                                                                                                                                                            • ANY et ALL
                                                                                                                                                                                                                                            • Injection SQL
                                                                                                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                            • XOR
                                                                                                                                                                                                                                            • IMP
                                                                                                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                            • Valeurs nulles
                                                                                                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                            • Fonction DDB
                                                                                                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                                                                                                            • Fonction PMT
                                                                                                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                                                                                                            • GROUP BY
                                                                                                                                                                                                                                            • LIST Function
                                                                                                                                                                                                                                            • LIST Function (2)
                                                                                                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                                                                                                            • T-GROUP BY
                                                                                                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                            • Distribution
                                                                                                                                                                                                                                            • Reacutesultat
                                                                                                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                            • Tendance
                                                                                                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                            • GROUPING SETS
                                                                                                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                            • Slide 112
                                                                                                                                                                                                                                            • Slide 113
                                                                                                                                                                                                                                            • Slide 114
                                                                                                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                            • FIN
                                                                                                                                                                                                                                            • Slide 149

                                                                                                                                                                                                                                              119

                                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                              120

                                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                              121

                                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                              122

                                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                              La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                              123

                                                                                                                                                                                                                                              Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                              Exeacutecution autonome

                                                                                                                                                                                                                                              124

                                                                                                                                                                                                                                              Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                              ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                              Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                              hellip

                                                                                                                                                                                                                                              125

                                                                                                                                                                                                                                              Liste de Choix Multibase

                                                                                                                                                                                                                                              bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                              SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                              126

                                                                                                                                                                                                                                              Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                              On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                              Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                              148

                                                                                                                                                                                                                                              FIN

                                                                                                                                                                                                                                              149

                                                                                                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                                                                                                              • Slide 3
                                                                                                                                                                                                                                              • Synonymes
                                                                                                                                                                                                                                              • Noms dattributs
                                                                                                                                                                                                                                              • Slide 6
                                                                                                                                                                                                                                              • Slide 7
                                                                                                                                                                                                                                              • Slide 8
                                                                                                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                                                                                                              • Expressions de valeur
                                                                                                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                                                                                                              • Limitations de NOT
                                                                                                                                                                                                                                              • ANY et ALL
                                                                                                                                                                                                                                              • Injection SQL
                                                                                                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                              • XOR
                                                                                                                                                                                                                                              • IMP
                                                                                                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                              • Valeurs nulles
                                                                                                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                              • Fonction DDB
                                                                                                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                                                                                                              • Fonction PMT
                                                                                                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                                                                                                              • GROUP BY
                                                                                                                                                                                                                                              • LIST Function
                                                                                                                                                                                                                                              • LIST Function (2)
                                                                                                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                                                                                                              • T-GROUP BY
                                                                                                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                              • Distribution
                                                                                                                                                                                                                                              • Reacutesultat
                                                                                                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                              • Tendance
                                                                                                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                              • GROUPING SETS
                                                                                                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                              • Slide 112
                                                                                                                                                                                                                                              • Slide 113
                                                                                                                                                                                                                                              • Slide 114
                                                                                                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                              • FIN
                                                                                                                                                                                                                                              • Slide 149

                                                                                                                                                                                                                                                120

                                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                121

                                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                122

                                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                                123

                                                                                                                                                                                                                                                Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                Exeacutecution autonome

                                                                                                                                                                                                                                                124

                                                                                                                                                                                                                                                Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                                ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                                Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                                hellip

                                                                                                                                                                                                                                                125

                                                                                                                                                                                                                                                Liste de Choix Multibase

                                                                                                                                                                                                                                                bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                                SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                                126

                                                                                                                                                                                                                                                Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                148

                                                                                                                                                                                                                                                FIN

                                                                                                                                                                                                                                                149

                                                                                                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                                                                                                • Slide 3
                                                                                                                                                                                                                                                • Synonymes
                                                                                                                                                                                                                                                • Noms dattributs
                                                                                                                                                                                                                                                • Slide 6
                                                                                                                                                                                                                                                • Slide 7
                                                                                                                                                                                                                                                • Slide 8
                                                                                                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                                                                                                • ANY et ALL
                                                                                                                                                                                                                                                • Injection SQL
                                                                                                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                • XOR
                                                                                                                                                                                                                                                • IMP
                                                                                                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                • Fonction DDB
                                                                                                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                                                                                                • Fonction PMT
                                                                                                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                                                                                                • GROUP BY
                                                                                                                                                                                                                                                • LIST Function
                                                                                                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                • Distribution
                                                                                                                                                                                                                                                • Reacutesultat
                                                                                                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                • Tendance
                                                                                                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                • Slide 112
                                                                                                                                                                                                                                                • Slide 113
                                                                                                                                                                                                                                                • Slide 114
                                                                                                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                • FIN
                                                                                                                                                                                                                                                • Slide 149

                                                                                                                                                                                                                                                  121

                                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                  122

                                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                  La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                                  123

                                                                                                                                                                                                                                                  Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                  Exeacutecution autonome

                                                                                                                                                                                                                                                  124

                                                                                                                                                                                                                                                  Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                                  ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                                  Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                                  hellip

                                                                                                                                                                                                                                                  125

                                                                                                                                                                                                                                                  Liste de Choix Multibase

                                                                                                                                                                                                                                                  bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                                  SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                                  126

                                                                                                                                                                                                                                                  Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                  On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                  Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                  148

                                                                                                                                                                                                                                                  FIN

                                                                                                                                                                                                                                                  149

                                                                                                                                                                                                                                                  • SQL Avanceacute 2010
                                                                                                                                                                                                                                                  • Quoi amp Pourquoi
                                                                                                                                                                                                                                                  • Slide 3
                                                                                                                                                                                                                                                  • Synonymes
                                                                                                                                                                                                                                                  • Noms dattributs
                                                                                                                                                                                                                                                  • Slide 6
                                                                                                                                                                                                                                                  • Slide 7
                                                                                                                                                                                                                                                  • Slide 8
                                                                                                                                                                                                                                                  • Insertion dans une Vue
                                                                                                                                                                                                                                                  • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                  • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                  • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                  • MsAccess Leacutegendes
                                                                                                                                                                                                                                                  • Expressions de valeur
                                                                                                                                                                                                                                                  • Expressions de valeur (2)
                                                                                                                                                                                                                                                  • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                  • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                  • UNION et ORDER BY
                                                                                                                                                                                                                                                  • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                  • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                  • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                  • Preacutedicat TOP
                                                                                                                                                                                                                                                  • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                  • Clause BETWEEN
                                                                                                                                                                                                                                                  • Limitations de NOT
                                                                                                                                                                                                                                                  • ANY et ALL
                                                                                                                                                                                                                                                  • Injection SQL
                                                                                                                                                                                                                                                  • Injection SQL (2)
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                  • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                  • XOR
                                                                                                                                                                                                                                                  • IMP
                                                                                                                                                                                                                                                  • Sous-requecirctes
                                                                                                                                                                                                                                                  • Sous-requecirctes (2)
                                                                                                                                                                                                                                                  • Sous-requecirctes (3)
                                                                                                                                                                                                                                                  • Sous-requecirctes (4)
                                                                                                                                                                                                                                                  • Sous-requecirctes (5)
                                                                                                                                                                                                                                                  • Sous-requecirctes (6)
                                                                                                                                                                                                                                                  • Sous-requecirctes (7)
                                                                                                                                                                                                                                                  • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                  • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                  • Valeurs nulles
                                                                                                                                                                                                                                                  • Valeurs nulles (2)
                                                                                                                                                                                                                                                  • Valeurs nulles (3)
                                                                                                                                                                                                                                                  • Valeurs nulles (4)
                                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                  • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                  • Fonction Scalaire RND
                                                                                                                                                                                                                                                  • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                  • Fonctions Financiegraveres
                                                                                                                                                                                                                                                  • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                  • Fonction DDB
                                                                                                                                                                                                                                                  • Fonction DDB (2)
                                                                                                                                                                                                                                                  • Fonction PMT
                                                                                                                                                                                                                                                  • Fonction PMT (2)
                                                                                                                                                                                                                                                  • Placement agrave taux variable
                                                                                                                                                                                                                                                  • GROUP BY
                                                                                                                                                                                                                                                  • LIST Function
                                                                                                                                                                                                                                                  • LIST Function (2)
                                                                                                                                                                                                                                                  • GROUP BY avec WHERE
                                                                                                                                                                                                                                                  • GROUP BY (2)
                                                                                                                                                                                                                                                  • GROUP BY avec HAVING
                                                                                                                                                                                                                                                  • T-GROUP BY
                                                                                                                                                                                                                                                  • T-GROUP BY (2)
                                                                                                                                                                                                                                                  • T-GROUP BY (3)
                                                                                                                                                                                                                                                  • T-GROUP BY (4)
                                                                                                                                                                                                                                                  • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                  • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                  • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                  • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                  • Distribution
                                                                                                                                                                                                                                                  • Reacutesultat
                                                                                                                                                                                                                                                  • Distribution Cumulative
                                                                                                                                                                                                                                                  • Reacutesultat (2)
                                                                                                                                                                                                                                                  • Cateacutegorisation
                                                                                                                                                                                                                                                  • Cateacutegorisation (2)
                                                                                                                                                                                                                                                  • Cateacutegorisation (3)
                                                                                                                                                                                                                                                  • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                  • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                  • Tendance
                                                                                                                                                                                                                                                  • Moyenne Glissante
                                                                                                                                                                                                                                                  • Moyenne Glissante (2)
                                                                                                                                                                                                                                                  • Moyenne Glissante (3)
                                                                                                                                                                                                                                                  • Seacuteries financiegraveres
                                                                                                                                                                                                                                                  • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                  • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                  • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                  • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                  • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                  • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                  • GROUPING SETS
                                                                                                                                                                                                                                                  • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                  • Slide 112
                                                                                                                                                                                                                                                  • Slide 113
                                                                                                                                                                                                                                                  • Slide 114
                                                                                                                                                                                                                                                  • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                  • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                  • Liste de Choix Multibase
                                                                                                                                                                                                                                                  • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                  • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                  • FIN
                                                                                                                                                                                                                                                  • Slide 149

                                                                                                                                                                                                                                                    122

                                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                    La requecircte elle-mecircme est un peu complexendash Voir le cours SQL Avanceacute

                                                                                                                                                                                                                                                    123

                                                                                                                                                                                                                                                    Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                    Exeacutecution autonome

                                                                                                                                                                                                                                                    124

                                                                                                                                                                                                                                                    Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                                    ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                                    Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                                    hellip

                                                                                                                                                                                                                                                    125

                                                                                                                                                                                                                                                    Liste de Choix Multibase

                                                                                                                                                                                                                                                    bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                                    SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                                    126

                                                                                                                                                                                                                                                    Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                    On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                    Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                    148

                                                                                                                                                                                                                                                    FIN

                                                                                                                                                                                                                                                    149

                                                                                                                                                                                                                                                    • SQL Avanceacute 2010
                                                                                                                                                                                                                                                    • Quoi amp Pourquoi
                                                                                                                                                                                                                                                    • Slide 3
                                                                                                                                                                                                                                                    • Synonymes
                                                                                                                                                                                                                                                    • Noms dattributs
                                                                                                                                                                                                                                                    • Slide 6
                                                                                                                                                                                                                                                    • Slide 7
                                                                                                                                                                                                                                                    • Slide 8
                                                                                                                                                                                                                                                    • Insertion dans une Vue
                                                                                                                                                                                                                                                    • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                    • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                    • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                    • MsAccess Leacutegendes
                                                                                                                                                                                                                                                    • Expressions de valeur
                                                                                                                                                                                                                                                    • Expressions de valeur (2)
                                                                                                                                                                                                                                                    • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                    • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                    • UNION et ORDER BY
                                                                                                                                                                                                                                                    • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                    • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                    • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                    • Preacutedicat TOP
                                                                                                                                                                                                                                                    • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                    • Clause BETWEEN
                                                                                                                                                                                                                                                    • Limitations de NOT
                                                                                                                                                                                                                                                    • ANY et ALL
                                                                                                                                                                                                                                                    • Injection SQL
                                                                                                                                                                                                                                                    • Injection SQL (2)
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                    • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                    • XOR
                                                                                                                                                                                                                                                    • IMP
                                                                                                                                                                                                                                                    • Sous-requecirctes
                                                                                                                                                                                                                                                    • Sous-requecirctes (2)
                                                                                                                                                                                                                                                    • Sous-requecirctes (3)
                                                                                                                                                                                                                                                    • Sous-requecirctes (4)
                                                                                                                                                                                                                                                    • Sous-requecirctes (5)
                                                                                                                                                                                                                                                    • Sous-requecirctes (6)
                                                                                                                                                                                                                                                    • Sous-requecirctes (7)
                                                                                                                                                                                                                                                    • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                    • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                    • Valeurs nulles
                                                                                                                                                                                                                                                    • Valeurs nulles (2)
                                                                                                                                                                                                                                                    • Valeurs nulles (3)
                                                                                                                                                                                                                                                    • Valeurs nulles (4)
                                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                    • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                    • Fonction Scalaire RND
                                                                                                                                                                                                                                                    • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                    • Fonctions Financiegraveres
                                                                                                                                                                                                                                                    • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                    • Fonction DDB
                                                                                                                                                                                                                                                    • Fonction DDB (2)
                                                                                                                                                                                                                                                    • Fonction PMT
                                                                                                                                                                                                                                                    • Fonction PMT (2)
                                                                                                                                                                                                                                                    • Placement agrave taux variable
                                                                                                                                                                                                                                                    • GROUP BY
                                                                                                                                                                                                                                                    • LIST Function
                                                                                                                                                                                                                                                    • LIST Function (2)
                                                                                                                                                                                                                                                    • GROUP BY avec WHERE
                                                                                                                                                                                                                                                    • GROUP BY (2)
                                                                                                                                                                                                                                                    • GROUP BY avec HAVING
                                                                                                                                                                                                                                                    • T-GROUP BY
                                                                                                                                                                                                                                                    • T-GROUP BY (2)
                                                                                                                                                                                                                                                    • T-GROUP BY (3)
                                                                                                                                                                                                                                                    • T-GROUP BY (4)
                                                                                                                                                                                                                                                    • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                    • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                    • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                    • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                    • Distribution
                                                                                                                                                                                                                                                    • Reacutesultat
                                                                                                                                                                                                                                                    • Distribution Cumulative
                                                                                                                                                                                                                                                    • Reacutesultat (2)
                                                                                                                                                                                                                                                    • Cateacutegorisation
                                                                                                                                                                                                                                                    • Cateacutegorisation (2)
                                                                                                                                                                                                                                                    • Cateacutegorisation (3)
                                                                                                                                                                                                                                                    • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                    • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                    • Tendance
                                                                                                                                                                                                                                                    • Moyenne Glissante
                                                                                                                                                                                                                                                    • Moyenne Glissante (2)
                                                                                                                                                                                                                                                    • Moyenne Glissante (3)
                                                                                                                                                                                                                                                    • Seacuteries financiegraveres
                                                                                                                                                                                                                                                    • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                    • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                    • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                    • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                    • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                    • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                    • GROUPING SETS
                                                                                                                                                                                                                                                    • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                    • Slide 112
                                                                                                                                                                                                                                                    • Slide 113
                                                                                                                                                                                                                                                    • Slide 114
                                                                                                                                                                                                                                                    • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                    • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                    • Liste de Choix Multibase
                                                                                                                                                                                                                                                    • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                    • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                    • FIN
                                                                                                                                                                                                                                                    • Slide 149

                                                                                                                                                                                                                                                      123

                                                                                                                                                                                                                                                      Sous-Tables Parameacutetreacutees

                                                                                                                                                                                                                                                      Exeacutecution autonome

                                                                                                                                                                                                                                                      124

                                                                                                                                                                                                                                                      Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                                      ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                                      Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                                      hellip

                                                                                                                                                                                                                                                      125

                                                                                                                                                                                                                                                      Liste de Choix Multibase

                                                                                                                                                                                                                                                      bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                                      SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                                      126

                                                                                                                                                                                                                                                      Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                      On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                      Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                      148

                                                                                                                                                                                                                                                      FIN

                                                                                                                                                                                                                                                      149

                                                                                                                                                                                                                                                      • SQL Avanceacute 2010
                                                                                                                                                                                                                                                      • Quoi amp Pourquoi
                                                                                                                                                                                                                                                      • Slide 3
                                                                                                                                                                                                                                                      • Synonymes
                                                                                                                                                                                                                                                      • Noms dattributs
                                                                                                                                                                                                                                                      • Slide 6
                                                                                                                                                                                                                                                      • Slide 7
                                                                                                                                                                                                                                                      • Slide 8
                                                                                                                                                                                                                                                      • Insertion dans une Vue
                                                                                                                                                                                                                                                      • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                      • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                      • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                      • MsAccess Leacutegendes
                                                                                                                                                                                                                                                      • Expressions de valeur
                                                                                                                                                                                                                                                      • Expressions de valeur (2)
                                                                                                                                                                                                                                                      • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                      • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                      • UNION et ORDER BY
                                                                                                                                                                                                                                                      • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                      • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                      • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                      • Preacutedicat TOP
                                                                                                                                                                                                                                                      • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                      • Clause BETWEEN
                                                                                                                                                                                                                                                      • Limitations de NOT
                                                                                                                                                                                                                                                      • ANY et ALL
                                                                                                                                                                                                                                                      • Injection SQL
                                                                                                                                                                                                                                                      • Injection SQL (2)
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                      • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                      • XOR
                                                                                                                                                                                                                                                      • IMP
                                                                                                                                                                                                                                                      • Sous-requecirctes
                                                                                                                                                                                                                                                      • Sous-requecirctes (2)
                                                                                                                                                                                                                                                      • Sous-requecirctes (3)
                                                                                                                                                                                                                                                      • Sous-requecirctes (4)
                                                                                                                                                                                                                                                      • Sous-requecirctes (5)
                                                                                                                                                                                                                                                      • Sous-requecirctes (6)
                                                                                                                                                                                                                                                      • Sous-requecirctes (7)
                                                                                                                                                                                                                                                      • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                      • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                      • Valeurs nulles
                                                                                                                                                                                                                                                      • Valeurs nulles (2)
                                                                                                                                                                                                                                                      • Valeurs nulles (3)
                                                                                                                                                                                                                                                      • Valeurs nulles (4)
                                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                      • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                      • Fonction Scalaire RND
                                                                                                                                                                                                                                                      • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                      • Fonctions Financiegraveres
                                                                                                                                                                                                                                                      • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                      • Fonction DDB
                                                                                                                                                                                                                                                      • Fonction DDB (2)
                                                                                                                                                                                                                                                      • Fonction PMT
                                                                                                                                                                                                                                                      • Fonction PMT (2)
                                                                                                                                                                                                                                                      • Placement agrave taux variable
                                                                                                                                                                                                                                                      • GROUP BY
                                                                                                                                                                                                                                                      • LIST Function
                                                                                                                                                                                                                                                      • LIST Function (2)
                                                                                                                                                                                                                                                      • GROUP BY avec WHERE
                                                                                                                                                                                                                                                      • GROUP BY (2)
                                                                                                                                                                                                                                                      • GROUP BY avec HAVING
                                                                                                                                                                                                                                                      • T-GROUP BY
                                                                                                                                                                                                                                                      • T-GROUP BY (2)
                                                                                                                                                                                                                                                      • T-GROUP BY (3)
                                                                                                                                                                                                                                                      • T-GROUP BY (4)
                                                                                                                                                                                                                                                      • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                      • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                      • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                      • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                      • Distribution
                                                                                                                                                                                                                                                      • Reacutesultat
                                                                                                                                                                                                                                                      • Distribution Cumulative
                                                                                                                                                                                                                                                      • Reacutesultat (2)
                                                                                                                                                                                                                                                      • Cateacutegorisation
                                                                                                                                                                                                                                                      • Cateacutegorisation (2)
                                                                                                                                                                                                                                                      • Cateacutegorisation (3)
                                                                                                                                                                                                                                                      • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                      • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                      • Tendance
                                                                                                                                                                                                                                                      • Moyenne Glissante
                                                                                                                                                                                                                                                      • Moyenne Glissante (2)
                                                                                                                                                                                                                                                      • Moyenne Glissante (3)
                                                                                                                                                                                                                                                      • Seacuteries financiegraveres
                                                                                                                                                                                                                                                      • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                      • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                      • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                      • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                      • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                      • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                      • GROUPING SETS
                                                                                                                                                                                                                                                      • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                      • Slide 112
                                                                                                                                                                                                                                                      • Slide 113
                                                                                                                                                                                                                                                      • Slide 114
                                                                                                                                                                                                                                                      • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                      • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                      • Liste de Choix Multibase
                                                                                                                                                                                                                                                      • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                      • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                      • FIN
                                                                                                                                                                                                                                                      • Slide 149

                                                                                                                                                                                                                                                        124

                                                                                                                                                                                                                                                        Liste de Choix Multibase laquo Liste de choix raquo dans la deacutefinition drsquoun attribut peut ecirctre multibase Un fournisseur dans la base S-P ne pourrait

                                                                                                                                                                                                                                                        ecirctre choisi que dans une ville drsquoun client de Northwind

                                                                                                                                                                                                                                                        Un code postal dans la base Clients devrait ecirctre dans la base nationale de codes postaux

                                                                                                                                                                                                                                                        hellip

                                                                                                                                                                                                                                                        125

                                                                                                                                                                                                                                                        Liste de Choix Multibase

                                                                                                                                                                                                                                                        bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                                        SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                                        126

                                                                                                                                                                                                                                                        Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                        On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                        Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                        148

                                                                                                                                                                                                                                                        FIN

                                                                                                                                                                                                                                                        149

                                                                                                                                                                                                                                                        • SQL Avanceacute 2010
                                                                                                                                                                                                                                                        • Quoi amp Pourquoi
                                                                                                                                                                                                                                                        • Slide 3
                                                                                                                                                                                                                                                        • Synonymes
                                                                                                                                                                                                                                                        • Noms dattributs
                                                                                                                                                                                                                                                        • Slide 6
                                                                                                                                                                                                                                                        • Slide 7
                                                                                                                                                                                                                                                        • Slide 8
                                                                                                                                                                                                                                                        • Insertion dans une Vue
                                                                                                                                                                                                                                                        • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                        • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                        • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                        • MsAccess Leacutegendes
                                                                                                                                                                                                                                                        • Expressions de valeur
                                                                                                                                                                                                                                                        • Expressions de valeur (2)
                                                                                                                                                                                                                                                        • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                        • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                        • UNION et ORDER BY
                                                                                                                                                                                                                                                        • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                        • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                        • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                        • Preacutedicat TOP
                                                                                                                                                                                                                                                        • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                        • Clause BETWEEN
                                                                                                                                                                                                                                                        • Limitations de NOT
                                                                                                                                                                                                                                                        • ANY et ALL
                                                                                                                                                                                                                                                        • Injection SQL
                                                                                                                                                                                                                                                        • Injection SQL (2)
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                        • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                        • XOR
                                                                                                                                                                                                                                                        • IMP
                                                                                                                                                                                                                                                        • Sous-requecirctes
                                                                                                                                                                                                                                                        • Sous-requecirctes (2)
                                                                                                                                                                                                                                                        • Sous-requecirctes (3)
                                                                                                                                                                                                                                                        • Sous-requecirctes (4)
                                                                                                                                                                                                                                                        • Sous-requecirctes (5)
                                                                                                                                                                                                                                                        • Sous-requecirctes (6)
                                                                                                                                                                                                                                                        • Sous-requecirctes (7)
                                                                                                                                                                                                                                                        • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                        • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                        • Valeurs nulles
                                                                                                                                                                                                                                                        • Valeurs nulles (2)
                                                                                                                                                                                                                                                        • Valeurs nulles (3)
                                                                                                                                                                                                                                                        • Valeurs nulles (4)
                                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                        • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                        • Fonction Scalaire RND
                                                                                                                                                                                                                                                        • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                        • Fonctions Financiegraveres
                                                                                                                                                                                                                                                        • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                        • Fonction DDB
                                                                                                                                                                                                                                                        • Fonction DDB (2)
                                                                                                                                                                                                                                                        • Fonction PMT
                                                                                                                                                                                                                                                        • Fonction PMT (2)
                                                                                                                                                                                                                                                        • Placement agrave taux variable
                                                                                                                                                                                                                                                        • GROUP BY
                                                                                                                                                                                                                                                        • LIST Function
                                                                                                                                                                                                                                                        • LIST Function (2)
                                                                                                                                                                                                                                                        • GROUP BY avec WHERE
                                                                                                                                                                                                                                                        • GROUP BY (2)
                                                                                                                                                                                                                                                        • GROUP BY avec HAVING
                                                                                                                                                                                                                                                        • T-GROUP BY
                                                                                                                                                                                                                                                        • T-GROUP BY (2)
                                                                                                                                                                                                                                                        • T-GROUP BY (3)
                                                                                                                                                                                                                                                        • T-GROUP BY (4)
                                                                                                                                                                                                                                                        • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                        • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                        • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                        • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                        • Distribution
                                                                                                                                                                                                                                                        • Reacutesultat
                                                                                                                                                                                                                                                        • Distribution Cumulative
                                                                                                                                                                                                                                                        • Reacutesultat (2)
                                                                                                                                                                                                                                                        • Cateacutegorisation
                                                                                                                                                                                                                                                        • Cateacutegorisation (2)
                                                                                                                                                                                                                                                        • Cateacutegorisation (3)
                                                                                                                                                                                                                                                        • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                        • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                        • Tendance
                                                                                                                                                                                                                                                        • Moyenne Glissante
                                                                                                                                                                                                                                                        • Moyenne Glissante (2)
                                                                                                                                                                                                                                                        • Moyenne Glissante (3)
                                                                                                                                                                                                                                                        • Seacuteries financiegraveres
                                                                                                                                                                                                                                                        • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                        • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                        • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                        • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                        • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                        • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                        • GROUPING SETS
                                                                                                                                                                                                                                                        • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                        • Slide 112
                                                                                                                                                                                                                                                        • Slide 113
                                                                                                                                                                                                                                                        • Slide 114
                                                                                                                                                                                                                                                        • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                        • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                        • Liste de Choix Multibase
                                                                                                                                                                                                                                                        • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                        • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                        • FIN
                                                                                                                                                                                                                                                        • Slide 149

                                                                                                                                                                                                                                                          125

                                                                                                                                                                                                                                                          Liste de Choix Multibase

                                                                                                                                                                                                                                                          bull Requecircte Test-liste-de-choix mdb

                                                                                                                                                                                                                                                          SELECT C[City] CContactNameFROM [northwind2000]customers AS CORDER BY CCity CContactName

                                                                                                                                                                                                                                                          126

                                                                                                                                                                                                                                                          Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                          On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                          Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                          148

                                                                                                                                                                                                                                                          FIN

                                                                                                                                                                                                                                                          149

                                                                                                                                                                                                                                                          • SQL Avanceacute 2010
                                                                                                                                                                                                                                                          • Quoi amp Pourquoi
                                                                                                                                                                                                                                                          • Slide 3
                                                                                                                                                                                                                                                          • Synonymes
                                                                                                                                                                                                                                                          • Noms dattributs
                                                                                                                                                                                                                                                          • Slide 6
                                                                                                                                                                                                                                                          • Slide 7
                                                                                                                                                                                                                                                          • Slide 8
                                                                                                                                                                                                                                                          • Insertion dans une Vue
                                                                                                                                                                                                                                                          • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                          • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                          • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                          • MsAccess Leacutegendes
                                                                                                                                                                                                                                                          • Expressions de valeur
                                                                                                                                                                                                                                                          • Expressions de valeur (2)
                                                                                                                                                                                                                                                          • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                          • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                          • UNION et ORDER BY
                                                                                                                                                                                                                                                          • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                          • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                          • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                          • Preacutedicat TOP
                                                                                                                                                                                                                                                          • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                          • Clause BETWEEN
                                                                                                                                                                                                                                                          • Limitations de NOT
                                                                                                                                                                                                                                                          • ANY et ALL
                                                                                                                                                                                                                                                          • Injection SQL
                                                                                                                                                                                                                                                          • Injection SQL (2)
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                          • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                          • XOR
                                                                                                                                                                                                                                                          • IMP
                                                                                                                                                                                                                                                          • Sous-requecirctes
                                                                                                                                                                                                                                                          • Sous-requecirctes (2)
                                                                                                                                                                                                                                                          • Sous-requecirctes (3)
                                                                                                                                                                                                                                                          • Sous-requecirctes (4)
                                                                                                                                                                                                                                                          • Sous-requecirctes (5)
                                                                                                                                                                                                                                                          • Sous-requecirctes (6)
                                                                                                                                                                                                                                                          • Sous-requecirctes (7)
                                                                                                                                                                                                                                                          • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                          • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                          • Valeurs nulles
                                                                                                                                                                                                                                                          • Valeurs nulles (2)
                                                                                                                                                                                                                                                          • Valeurs nulles (3)
                                                                                                                                                                                                                                                          • Valeurs nulles (4)
                                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                          • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                          • Fonction Scalaire RND
                                                                                                                                                                                                                                                          • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                          • Fonctions Financiegraveres
                                                                                                                                                                                                                                                          • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                          • Fonction DDB
                                                                                                                                                                                                                                                          • Fonction DDB (2)
                                                                                                                                                                                                                                                          • Fonction PMT
                                                                                                                                                                                                                                                          • Fonction PMT (2)
                                                                                                                                                                                                                                                          • Placement agrave taux variable
                                                                                                                                                                                                                                                          • GROUP BY
                                                                                                                                                                                                                                                          • LIST Function
                                                                                                                                                                                                                                                          • LIST Function (2)
                                                                                                                                                                                                                                                          • GROUP BY avec WHERE
                                                                                                                                                                                                                                                          • GROUP BY (2)
                                                                                                                                                                                                                                                          • GROUP BY avec HAVING
                                                                                                                                                                                                                                                          • T-GROUP BY
                                                                                                                                                                                                                                                          • T-GROUP BY (2)
                                                                                                                                                                                                                                                          • T-GROUP BY (3)
                                                                                                                                                                                                                                                          • T-GROUP BY (4)
                                                                                                                                                                                                                                                          • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                          • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                          • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                          • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                          • Distribution
                                                                                                                                                                                                                                                          • Reacutesultat
                                                                                                                                                                                                                                                          • Distribution Cumulative
                                                                                                                                                                                                                                                          • Reacutesultat (2)
                                                                                                                                                                                                                                                          • Cateacutegorisation
                                                                                                                                                                                                                                                          • Cateacutegorisation (2)
                                                                                                                                                                                                                                                          • Cateacutegorisation (3)
                                                                                                                                                                                                                                                          • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                          • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                          • Tendance
                                                                                                                                                                                                                                                          • Moyenne Glissante
                                                                                                                                                                                                                                                          • Moyenne Glissante (2)
                                                                                                                                                                                                                                                          • Moyenne Glissante (3)
                                                                                                                                                                                                                                                          • Seacuteries financiegraveres
                                                                                                                                                                                                                                                          • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                          • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                          • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                          • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                          • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                          • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                          • GROUPING SETS
                                                                                                                                                                                                                                                          • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                          • Slide 112
                                                                                                                                                                                                                                                          • Slide 113
                                                                                                                                                                                                                                                          • Slide 114
                                                                                                                                                                                                                                                          • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                          • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                          • Liste de Choix Multibase
                                                                                                                                                                                                                                                          • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                          • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                          • FIN
                                                                                                                                                                                                                                                          • Slide 149

                                                                                                                                                                                                                                                            126

                                                                                                                                                                                                                                                            Liste de Choix MultibaseReacutesultat

                                                                                                                                                                                                                                                            On ne peut pas deacuteclarer la requecircte MBD directementPourqoui

                                                                                                                                                                                                                                                            Tregraves bonne question agrave Microsoft

                                                                                                                                                                                                                                                            148

                                                                                                                                                                                                                                                            FIN

                                                                                                                                                                                                                                                            149

                                                                                                                                                                                                                                                            • SQL Avanceacute 2010
                                                                                                                                                                                                                                                            • Quoi amp Pourquoi
                                                                                                                                                                                                                                                            • Slide 3
                                                                                                                                                                                                                                                            • Synonymes
                                                                                                                                                                                                                                                            • Noms dattributs
                                                                                                                                                                                                                                                            • Slide 6
                                                                                                                                                                                                                                                            • Slide 7
                                                                                                                                                                                                                                                            • Slide 8
                                                                                                                                                                                                                                                            • Insertion dans une Vue
                                                                                                                                                                                                                                                            • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                            • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                            • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                            • MsAccess Leacutegendes
                                                                                                                                                                                                                                                            • Expressions de valeur
                                                                                                                                                                                                                                                            • Expressions de valeur (2)
                                                                                                                                                                                                                                                            • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                            • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                            • UNION et ORDER BY
                                                                                                                                                                                                                                                            • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                            • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                            • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                            • Preacutedicat TOP
                                                                                                                                                                                                                                                            • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                            • Clause BETWEEN
                                                                                                                                                                                                                                                            • Limitations de NOT
                                                                                                                                                                                                                                                            • ANY et ALL
                                                                                                                                                                                                                                                            • Injection SQL
                                                                                                                                                                                                                                                            • Injection SQL (2)
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                            • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                            • XOR
                                                                                                                                                                                                                                                            • IMP
                                                                                                                                                                                                                                                            • Sous-requecirctes
                                                                                                                                                                                                                                                            • Sous-requecirctes (2)
                                                                                                                                                                                                                                                            • Sous-requecirctes (3)
                                                                                                                                                                                                                                                            • Sous-requecirctes (4)
                                                                                                                                                                                                                                                            • Sous-requecirctes (5)
                                                                                                                                                                                                                                                            • Sous-requecirctes (6)
                                                                                                                                                                                                                                                            • Sous-requecirctes (7)
                                                                                                                                                                                                                                                            • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                            • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                            • Valeurs nulles
                                                                                                                                                                                                                                                            • Valeurs nulles (2)
                                                                                                                                                                                                                                                            • Valeurs nulles (3)
                                                                                                                                                                                                                                                            • Valeurs nulles (4)
                                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                            • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                            • Fonction Scalaire RND
                                                                                                                                                                                                                                                            • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                            • Fonctions Financiegraveres
                                                                                                                                                                                                                                                            • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                            • Fonction DDB
                                                                                                                                                                                                                                                            • Fonction DDB (2)
                                                                                                                                                                                                                                                            • Fonction PMT
                                                                                                                                                                                                                                                            • Fonction PMT (2)
                                                                                                                                                                                                                                                            • Placement agrave taux variable
                                                                                                                                                                                                                                                            • GROUP BY
                                                                                                                                                                                                                                                            • LIST Function
                                                                                                                                                                                                                                                            • LIST Function (2)
                                                                                                                                                                                                                                                            • GROUP BY avec WHERE
                                                                                                                                                                                                                                                            • GROUP BY (2)
                                                                                                                                                                                                                                                            • GROUP BY avec HAVING
                                                                                                                                                                                                                                                            • T-GROUP BY
                                                                                                                                                                                                                                                            • T-GROUP BY (2)
                                                                                                                                                                                                                                                            • T-GROUP BY (3)
                                                                                                                                                                                                                                                            • T-GROUP BY (4)
                                                                                                                                                                                                                                                            • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                            • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                            • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                            • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                            • Distribution
                                                                                                                                                                                                                                                            • Reacutesultat
                                                                                                                                                                                                                                                            • Distribution Cumulative
                                                                                                                                                                                                                                                            • Reacutesultat (2)
                                                                                                                                                                                                                                                            • Cateacutegorisation
                                                                                                                                                                                                                                                            • Cateacutegorisation (2)
                                                                                                                                                                                                                                                            • Cateacutegorisation (3)
                                                                                                                                                                                                                                                            • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                            • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                            • Tendance
                                                                                                                                                                                                                                                            • Moyenne Glissante
                                                                                                                                                                                                                                                            • Moyenne Glissante (2)
                                                                                                                                                                                                                                                            • Moyenne Glissante (3)
                                                                                                                                                                                                                                                            • Seacuteries financiegraveres
                                                                                                                                                                                                                                                            • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                            • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                            • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                            • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                            • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                            • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                            • GROUPING SETS
                                                                                                                                                                                                                                                            • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                            • Slide 112
                                                                                                                                                                                                                                                            • Slide 113
                                                                                                                                                                                                                                                            • Slide 114
                                                                                                                                                                                                                                                            • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                            • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                            • Liste de Choix Multibase
                                                                                                                                                                                                                                                            • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                            • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                            • FIN
                                                                                                                                                                                                                                                            • Slide 149

                                                                                                                                                                                                                                                              148

                                                                                                                                                                                                                                                              FIN

                                                                                                                                                                                                                                                              149

                                                                                                                                                                                                                                                              • SQL Avanceacute 2010
                                                                                                                                                                                                                                                              • Quoi amp Pourquoi
                                                                                                                                                                                                                                                              • Slide 3
                                                                                                                                                                                                                                                              • Synonymes
                                                                                                                                                                                                                                                              • Noms dattributs
                                                                                                                                                                                                                                                              • Slide 6
                                                                                                                                                                                                                                                              • Slide 7
                                                                                                                                                                                                                                                              • Slide 8
                                                                                                                                                                                                                                                              • Insertion dans une Vue
                                                                                                                                                                                                                                                              • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                              • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                              • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                              • MsAccess Leacutegendes
                                                                                                                                                                                                                                                              • Expressions de valeur
                                                                                                                                                                                                                                                              • Expressions de valeur (2)
                                                                                                                                                                                                                                                              • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                              • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                              • UNION et ORDER BY
                                                                                                                                                                                                                                                              • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                              • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                              • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                              • Preacutedicat TOP
                                                                                                                                                                                                                                                              • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                              • Clause BETWEEN
                                                                                                                                                                                                                                                              • Limitations de NOT
                                                                                                                                                                                                                                                              • ANY et ALL
                                                                                                                                                                                                                                                              • Injection SQL
                                                                                                                                                                                                                                                              • Injection SQL (2)
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                              • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                              • XOR
                                                                                                                                                                                                                                                              • IMP
                                                                                                                                                                                                                                                              • Sous-requecirctes
                                                                                                                                                                                                                                                              • Sous-requecirctes (2)
                                                                                                                                                                                                                                                              • Sous-requecirctes (3)
                                                                                                                                                                                                                                                              • Sous-requecirctes (4)
                                                                                                                                                                                                                                                              • Sous-requecirctes (5)
                                                                                                                                                                                                                                                              • Sous-requecirctes (6)
                                                                                                                                                                                                                                                              • Sous-requecirctes (7)
                                                                                                                                                                                                                                                              • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                              • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                              • Valeurs nulles
                                                                                                                                                                                                                                                              • Valeurs nulles (2)
                                                                                                                                                                                                                                                              • Valeurs nulles (3)
                                                                                                                                                                                                                                                              • Valeurs nulles (4)
                                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                              • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                              • Fonction Scalaire RND
                                                                                                                                                                                                                                                              • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                              • Fonctions Financiegraveres
                                                                                                                                                                                                                                                              • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                              • Fonction DDB
                                                                                                                                                                                                                                                              • Fonction DDB (2)
                                                                                                                                                                                                                                                              • Fonction PMT
                                                                                                                                                                                                                                                              • Fonction PMT (2)
                                                                                                                                                                                                                                                              • Placement agrave taux variable
                                                                                                                                                                                                                                                              • GROUP BY
                                                                                                                                                                                                                                                              • LIST Function
                                                                                                                                                                                                                                                              • LIST Function (2)
                                                                                                                                                                                                                                                              • GROUP BY avec WHERE
                                                                                                                                                                                                                                                              • GROUP BY (2)
                                                                                                                                                                                                                                                              • GROUP BY avec HAVING
                                                                                                                                                                                                                                                              • T-GROUP BY
                                                                                                                                                                                                                                                              • T-GROUP BY (2)
                                                                                                                                                                                                                                                              • T-GROUP BY (3)
                                                                                                                                                                                                                                                              • T-GROUP BY (4)
                                                                                                                                                                                                                                                              • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                              • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                              • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                              • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                              • Distribution
                                                                                                                                                                                                                                                              • Reacutesultat
                                                                                                                                                                                                                                                              • Distribution Cumulative
                                                                                                                                                                                                                                                              • Reacutesultat (2)
                                                                                                                                                                                                                                                              • Cateacutegorisation
                                                                                                                                                                                                                                                              • Cateacutegorisation (2)
                                                                                                                                                                                                                                                              • Cateacutegorisation (3)
                                                                                                                                                                                                                                                              • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                              • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                              • Tendance
                                                                                                                                                                                                                                                              • Moyenne Glissante
                                                                                                                                                                                                                                                              • Moyenne Glissante (2)
                                                                                                                                                                                                                                                              • Moyenne Glissante (3)
                                                                                                                                                                                                                                                              • Seacuteries financiegraveres
                                                                                                                                                                                                                                                              • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                              • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                              • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                              • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                              • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                              • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                              • GROUPING SETS
                                                                                                                                                                                                                                                              • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                              • Slide 112
                                                                                                                                                                                                                                                              • Slide 113
                                                                                                                                                                                                                                                              • Slide 114
                                                                                                                                                                                                                                                              • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                              • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                              • Liste de Choix Multibase
                                                                                                                                                                                                                                                              • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                              • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                              • FIN
                                                                                                                                                                                                                                                              • Slide 149

                                                                                                                                                                                                                                                                149

                                                                                                                                                                                                                                                                • SQL Avanceacute 2010
                                                                                                                                                                                                                                                                • Quoi amp Pourquoi
                                                                                                                                                                                                                                                                • Slide 3
                                                                                                                                                                                                                                                                • Synonymes
                                                                                                                                                                                                                                                                • Noms dattributs
                                                                                                                                                                                                                                                                • Slide 6
                                                                                                                                                                                                                                                                • Slide 7
                                                                                                                                                                                                                                                                • Slide 8
                                                                                                                                                                                                                                                                • Insertion dans une Vue
                                                                                                                                                                                                                                                                • Insertion dans une Vue (2)
                                                                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess
                                                                                                                                                                                                                                                                • MAJ drsquoune Vue MsAccess (2)
                                                                                                                                                                                                                                                                • Suppression dans une Vue MsAccess
                                                                                                                                                                                                                                                                • MsAccess Leacutegendes
                                                                                                                                                                                                                                                                • Expressions de valeur
                                                                                                                                                                                                                                                                • Expressions de valeur (2)
                                                                                                                                                                                                                                                                • Pour en savoir + sur les attributs dynamiques
                                                                                                                                                                                                                                                                • UNION et Noms Drsquoattributs
                                                                                                                                                                                                                                                                • UNION et ORDER BY
                                                                                                                                                                                                                                                                • ORDER BY et expressions de valeur
                                                                                                                                                                                                                                                                • ORDER BY et expressions de valeur (2)
                                                                                                                                                                                                                                                                • Ordre de prioriteacute dopeacuterations
                                                                                                                                                                                                                                                                • Preacutedicat TOP
                                                                                                                                                                                                                                                                • Preacutedicat TOP (2)
                                                                                                                                                                                                                                                                • Clause BETWEEN
                                                                                                                                                                                                                                                                • Limitations de NOT
                                                                                                                                                                                                                                                                • ANY et ALL
                                                                                                                                                                                                                                                                • Injection SQL
                                                                                                                                                                                                                                                                • Injection SQL (2)
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries)
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees (Crosstab queries Pivot Queries) (2)
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees (2)
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees (3)
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees (4)
                                                                                                                                                                                                                                                                • Tabulations Croiseacutees (5)
                                                                                                                                                                                                                                                                • XOR
                                                                                                                                                                                                                                                                • IMP
                                                                                                                                                                                                                                                                • Sous-requecirctes
                                                                                                                                                                                                                                                                • Sous-requecirctes (2)
                                                                                                                                                                                                                                                                • Sous-requecirctes (3)
                                                                                                                                                                                                                                                                • Sous-requecirctes (4)
                                                                                                                                                                                                                                                                • Sous-requecirctes (5)
                                                                                                                                                                                                                                                                • Sous-requecirctes (6)
                                                                                                                                                                                                                                                                • Sous-requecirctes (7)
                                                                                                                                                                                                                                                                • Application aux Probabiliteacutes
                                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee
                                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (2)
                                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (3)
                                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (4)
                                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (5)
                                                                                                                                                                                                                                                                • Clause FROM imbriqueacutee (6)
                                                                                                                                                                                                                                                                • Valeurs nulles
                                                                                                                                                                                                                                                                • Valeurs nulles (2)
                                                                                                                                                                                                                                                                • Valeurs nulles (3)
                                                                                                                                                                                                                                                                • Valeurs nulles (4)
                                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps
                                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (2)
                                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (3)
                                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (4)
                                                                                                                                                                                                                                                                • Fonctions Scalaires DateTemps (5)
                                                                                                                                                                                                                                                                • Fonction Scalaire RND
                                                                                                                                                                                                                                                                • Fonction Scalaire RND (2)
                                                                                                                                                                                                                                                                • Fonctions Financiegraveres
                                                                                                                                                                                                                                                                • Fonctions Financiegraveres (2)
                                                                                                                                                                                                                                                                • Fonction DDB
                                                                                                                                                                                                                                                                • Fonction DDB (2)
                                                                                                                                                                                                                                                                • Fonction PMT
                                                                                                                                                                                                                                                                • Fonction PMT (2)
                                                                                                                                                                                                                                                                • Placement agrave taux variable
                                                                                                                                                                                                                                                                • GROUP BY
                                                                                                                                                                                                                                                                • LIST Function
                                                                                                                                                                                                                                                                • LIST Function (2)
                                                                                                                                                                                                                                                                • GROUP BY avec WHERE
                                                                                                                                                                                                                                                                • GROUP BY (2)
                                                                                                                                                                                                                                                                • GROUP BY avec HAVING
                                                                                                                                                                                                                                                                • T-GROUP BY
                                                                                                                                                                                                                                                                • T-GROUP BY (2)
                                                                                                                                                                                                                                                                • T-GROUP BY (3)
                                                                                                                                                                                                                                                                • T-GROUP BY (4)
                                                                                                                                                                                                                                                                • Rangs Non-Denses (Non Dense Ranking)
                                                                                                                                                                                                                                                                • Rangs Non-Denses (Graphique MsAccess)
                                                                                                                                                                                                                                                                • Rangs Denses (Dense Ranking)
                                                                                                                                                                                                                                                                • Rangs Denses Graphique MsAccess
                                                                                                                                                                                                                                                                • Distribution
                                                                                                                                                                                                                                                                • Reacutesultat
                                                                                                                                                                                                                                                                • Distribution Cumulative
                                                                                                                                                                                                                                                                • Reacutesultat (2)
                                                                                                                                                                                                                                                                • Cateacutegorisation
                                                                                                                                                                                                                                                                • Cateacutegorisation (2)
                                                                                                                                                                                                                                                                • Cateacutegorisation (3)
                                                                                                                                                                                                                                                                • UNION Preacutedictions de Valeurs Inconnues
                                                                                                                                                                                                                                                                • UNION Preacutediction de Valeurs Inconnues
                                                                                                                                                                                                                                                                • Tendance
                                                                                                                                                                                                                                                                • Moyenne Glissante
                                                                                                                                                                                                                                                                • Moyenne Glissante (2)
                                                                                                                                                                                                                                                                • Moyenne Glissante (3)
                                                                                                                                                                                                                                                                • Seacuteries financiegraveres
                                                                                                                                                                                                                                                                • Seacuteries financiegraveres (2)
                                                                                                                                                                                                                                                                • Seacuteries financiegraveres (3)
                                                                                                                                                                                                                                                                • Seacuteries financiegraveres (4)
                                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille
                                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (2)
                                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (3)
                                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille (4)
                                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion
                                                                                                                                                                                                                                                                • Creacuteation drsquoun Portefeuille Discussion (2)
                                                                                                                                                                                                                                                                • ROLLUP (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                                • CUBE (DB2 amp SQL-Server)
                                                                                                                                                                                                                                                                • GROUPING SETS
                                                                                                                                                                                                                                                                • Rollup Cube Grouping Sets sous MsAccess
                                                                                                                                                                                                                                                                • Slide 112
                                                                                                                                                                                                                                                                • Slide 113
                                                                                                                                                                                                                                                                • Slide 114
                                                                                                                                                                                                                                                                • Autres Opeacuterations Utiles
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (2)
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (3)
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (4)
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (5)
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (6)
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (7)
                                                                                                                                                                                                                                                                • Sous-Tables Parameacutetreacutees (8)
                                                                                                                                                                                                                                                                • Liste de Choix Multibase
                                                                                                                                                                                                                                                                • Liste de Choix Multibase (2)
                                                                                                                                                                                                                                                                • Liste de Choix Multibase Reacutesultat
                                                                                                                                                                                                                                                                • FIN
                                                                                                                                                                                                                                                                • Slide 149

                                                                                                                                                                                                                                                                  top related