-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBDGestionDeStock.sql
More file actions
106 lines (92 loc) · 4.04 KB
/
BDGestionDeStock.sql
File metadata and controls
106 lines (92 loc) · 4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
CREATE TABLE STATUT(
CATEGORIE CHAR(60) PRIMARY KEY
);
INSERT INTO STATUT(CATEGORIE) VALUES ('halal'), ('casher'), ('vegan'), ('vegetarien');
CREATE TABLE ARTICLE(
TYPEA CHAR(60) PRIMARY KEY
);
INSERT INTO ARTICLE(TYPEA) VALUES ('boisson'), ('snack'), ('nouille'), ('autre');
ALTER TABLE SNACK
CREATE TABLE SNACK(
NOM_SNACK CHAR(60) PRIMARY KEY,
PRIX FLOAT NOT NULL,
PRIX_ACHAT FLOAT NOT NULL,
DESCRIPTION VARCHAR,
QUANTITE INT NOT NULL,
EN_VENTE INT NOT NULL DEFAULT 1,
RUPTURE INT NOT NULL,
TYPEA CHAR(60) NOT NULL
CHEMIN_VERS_LIMAGE VARCHAR NOT NULL;
);
ALTER TABLE SNACK ADD FOREIGN KEY (TYPEA) REFERENCES ARTICLE(TYPEA);
CREATE TABLE PERSONNE(
NOM VARCHAR,
PRENOM VARCHAR,
ACTIF INT NOT NULL DEFAULT 1,
PRIMARY KEY (NOM, PRENOM)
);
ALTER TABLE PEUT_CONTENIR ADD FOREIGN KEY (CATEGORIE) REFERENCES STATUT(CATEGORIE);
ALTER TABLE PEUT_CONTENIR ADD FOREIGN KEY (NOM_SNACK) REFERENCES SNACK(NOM_SNACK);
CREATE TABLE PEUT_CONTENIR(
CATEGORIE CHAR(60),
NOM_SNACK CHAR(60),
PRIMARY KEY (CATEGORIE, NOM_SNACK),
FOREIGN KEY (CATEGORIE) REFERENCES STATUT(CATEGORIE),
FOREIGN KEY (NOM_SNACK) REFERENCES SNACK(SNACK)
);
CREATE TABLE HISTORIQUE_VENTE(
DATE_ET_HEURE TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP PRIMARY KEY
);
ALTER TABLE CONTENU_VENTE ADD FOREIGN KEY (NOM_SNACK) REFERENCES SNACK(NOM_SNACK);
ALTER TABLE CONTENU_VENTE ADD FOREIGN KEY (DATE_ET_HEURE) REFERENCES HISTORIQUE_VENTE(DATE_ET_HEURE);
CREATE TABLE CONTENU_VENTE(
NOM_SNACK CHAR(60),
DATE_ET_HEURE TIMESTAMP WITHOUT TIME ZONE,
OCCURRENCE INT,
PRIX FLOAT NOT NULL DEFAULT 0,
PRIX_ACHAT FLOAT NOT NULL DEFAULT 0,
PRIMARY KEY (NOM_SNACK, DATE_ET_HEURE),
FOREIGN KEY (NOM_SNACK) REFERENCES SNACK(NOM_SNACK),
FOREIGN KEY (DATE_ET_HEURE) REFERENCES HISTORIQUE_VENTE(DATE_ET_HEURE)
);
ALTER TABLE VENDU_PAR ADD FOREIGN KEY (DATE_ET_HEURE) REFERENCES HISTORIQUE_VENTE(DATE_ET_HEURE);
ALTER TABLE VENDU_PAR ADD FOREIGN KEY (NOM, PRENOM) REFERENCES PERSONNE(NOM, PRENOM);
CREATE TABLE VENDU_PAR(
DATE_ET_HEURE TIMESTAMP WITHOUT TIME ZONE,
NOM VARCHAR,
PRENOM VARCHAR,
PRIMARY KEY (DATE_ET_HEURE, NOM, PRENOM),
FOREIGN KEY (DATE_ET_HEURE) REFERENCES HISTORIQUE_VENTE(DATE_ET_HEURE),
FOREIGN KEY (NOM, PRENOM) REFERENCES PERSONNE(NOM, PRENOM)
);
"""renvoit le totale de toute les commande qui sons fait pare une pesrsone spésifique et qui continéne un snack spésifique"""
SELECT SUM(CV.OCCURRENCE * CV.PRIX) AS somme_produits
FROM CONTENU_VENTE CV
JOIN VENDU_PAR VP ON CV.DATE_ET_HEURE = VP.DATE_ET_HEURE
JOIN CONTENU_VENTE CE ON CV.DATE_ET_HEURE = CE.DATE_ET_HEURE
WHERE VP.NOM = 'Groc' AND VP.PRENOM = 'Simon' AND CE.NOM_SNACK = 'test' AND CV.DATE_ET_HEURE >= $1 AND CV.DATE_ET_HEURE < $2 AND VP.DATE_ET_HEURE >= $1 AND VP.DATE_ET_HEURE < $2 AND CE.DATE_ET_HEURE >= $1 AND CE.DATE_ET_HEURE < $2;
"""Somme des snack d'un type spésifique et vendus pare une persone en particulier"""
SELECT SUM(CV.OCCURRENCE * CV.PRIX) AS somme_produits
FROM CONTENU_VENTE CV
JOIN VENDU_PAR VP ON CV.DATE_ET_HEURE = VP.DATE_ET_HEURE
WHERE VP.NOM = $5 AND VP.PRENOM = $4 AND CV.NOM_SNACK = $3 AND
CV.DATE_ET_HEURE >= $1 AND CV.DATE_ET_HEURE < $2 AND
VP.DATE_ET_HEURE >= $1 AND VP.DATE_ET_HEURE < $2 AND
CE.DATE_ET_HEURE >= $1 AND CE.DATE_ET_HEURE < $2;
"""Somme des commande faite pare une perssone spésifier"""
SELECT SUM(CV.OCCURRENCE * CV.PRIX) AS somme_produits
FROM CONTENU_VENTE CV
JOIN VENDU_PAR VP ON CV.DATE_ET_HEURE = VP.DATE_ET_HEURE
WHERE VP.NOM = 'Groc' AND VP.PRENOM = 'Simon';
"""Somme de toute les commande qui contien un produis spésifique"""
SELECT SUM(CV.OCCURRENCE * CV.PRIX) AS somme_produits
FROM CONTENU_VENTE CV
JOIN CONTENU_VENTE CE ON CV.DATE_ET_HEURE = CE.DATE_ET_HEURE
WHERE CE.NOM_SNACK = 'test';
"""Somme du produis spésifier"""
SELECT SUM(CV.OCCURRENCE * CV.PRIX) AS somme_produits
FROM CONTENU_VENTE CV
WHERE CV.NOM_SNACK = 'test';
"""Somme de commande"""
SELECT SUM(CV.OCCURRENCE * CV.PRIX) AS somme_produits
FROM CONTENU_VENTE CV;