TP SUR ROLAP
1. Ecrire une requête SQL permettant de créer un utilisateur tped avec le mot de passe
123, utilisant users comme tablespace par défaut, temp comme tablespace temporaire,
avec un quota de 50 Mo sur users, et accordez-lui les roles CONNECT et RESOURCE
2. Créer les tables :
a. table de fait : vente (id_vente, id_temps, id_produit, quantite, montant),
b. les dimension temps(id_temps, jour, mois, annee) et PRODUIT(id_produit,
nom_produit, categorie )
3. Total des ventes par année
4. Total des ventes par produit
5. Total des quantités vendues par catégorie de produit
6. Total des ventes par mois et par année
7. Montant total des ventes par produit et par année (avec ROLLUP)
8. Montant total des ventes par catégorie avec sous-total par année (CUBE)
-- Table Dimension Temps
CREATE TABLE D_TEMPS (
id_temps NUMBER PRIMARY KEY,
jour VARCHAR2(10),
mois VARCHAR2(10),
annee NUMBER
);
-- Table Dimension Produit
CREATE TABLE D_PRODUIT (
id_produit NUMBER PRIMARY KEY,
nom_produit VARCHAR2(50),
categorie VARCHAR2(30)
);
-- Table de Faits Ventes
CREATE TABLE F_VENTES (
id_vente NUMBER PRIMARY KEY,
id_temps NUMBER REFERENCES D_TEMPS(id_temps),
id_produit NUMBER REFERENCES D_PRODUIT(id_produit),
quantite NUMBER,
montant NUMBER
);
INSERT INTO D_TEMPS VALUES (1, '01', 'Janvier', 2023);
INSERT INTO D_TEMPS VALUES (2, '05', 'Février', 2023);
INSERT INTO D_TEMPS VALUES (3, '12', 'Mars', 2023);
INSERT INTO D_TEMPS VALUES (4, '18', 'Avril', 2023);
INSERT INTO D_TEMPS VALUES (5, '22', 'Mai', 2023);
INSERT INTO D_TEMPS VALUES (6, '30', 'Juin', 2023);
INSERT INTO D_TEMPS VALUES (7, '04', 'Juillet', 2023);
INSERT INTO D_TEMPS VALUES (8, '10', 'Août', 2023);
INSERT INTO D_TEMPS VALUES (9, '14', 'Septembre', 2023);
INSERT INTO D_TEMPS VALUES (10, '19', 'Octobre', 2023);
INSERT INTO D_TEMPS VALUES (11, '23', 'Novembre', 2023);
INSERT INTO D_TEMPS VALUES (12, '28', 'Décembre', 2023);
INSERT INTO D_TEMPS VALUES (13, '03', 'Janvier', 2024);
INSERT INTO D_TEMPS VALUES (14, '08', 'Février', 2024);
INSERT INTO D_TEMPS VALUES (15, '15', 'Mars', 2024);
INSERT INTO D_TEMPS VALUES (16, '20', 'Avril', 2024);
INSERT INTO D_TEMPS VALUES (17, '26', 'Mai', 2024);
INSERT INTO D_TEMPS VALUES (18, '01', 'Juin', 2024);
INSERT INTO D_TEMPS VALUES (19, '06', 'Juillet', 2024);
INSERT INTO D_TEMPS VALUES (20, '11', 'Août', 2024);
Chiffre d'affaires par mois
Top 5 des produits les plus vendus (en valeur)
INSERT INTO D_PRODUIT VALUES (1, 'Ordinateur Portable', 'Informatique');
INSERT INTO D_PRODUIT VALUES (2, 'Clé USB', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (3, 'Imprimante Laser', 'Électronique');
INSERT INTO D_PRODUIT VALUES (4, 'Écran 24 pouces', 'Informatique');
INSERT INTO D_PRODUIT VALUES (5, 'Souris sans fil', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (6, 'Clavier mécanique', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (7, 'Disque dur 1To', 'Stockage');
INSERT INTO D_PRODUIT VALUES (8, 'Tablette Android', 'Électronique');
INSERT INTO D_PRODUIT VALUES (9, 'Routeur WiFi', 'Réseau');
INSERT INTO D_PRODUIT VALUES (10, 'Scanner A4', 'Électronique');
INSERT INTO D_PRODUIT VALUES (11, 'Webcam HD', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (12, 'Microphone USB', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (13, 'Switch réseau', 'Réseau');
INSERT INTO D_PRODUIT VALUES (14, 'Caméra de sécurité', 'Électronique');
INSERT INTO D_PRODUIT VALUES (15, 'Batterie externe', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (16, 'Projecteur LED', 'Multimédia');
INSERT INTO D_PRODUIT VALUES (17, 'Smartphone', 'Électronique');
INSERT INTO D_PRODUIT VALUES (18, 'Casque audio', 'Accessoire');
INSERT INTO D_PRODUIT VALUES (19, 'Lecteur DVD', 'Multimédia');
INSERT INTO D_PRODUIT VALUES (20, 'Onduleur', 'Énergie');
INSERT INTO F_VENTES VALUES (1, 1, 1, 5, 5000);
INSERT INTO F_VENTES VALUES (2, 2, 2, 10, 1000);
INSERT INTO F_VENTES VALUES (3, 3, 3, 2, 800);
INSERT INTO F_VENTES VALUES (4, 4, 4, 4, 1200);
INSERT INTO F_VENTES VALUES (5, 5, 5, 6, 300);
INSERT INTO F_VENTES VALUES (6, 6, 6, 3, 450);
INSERT INTO F_VENTES VALUES (7, 7, 7, 2, 1600);
INSERT INTO F_VENTES VALUES (8, 8, 8, 1, 900);
INSERT INTO F_VENTES VALUES (9, 9, 9, 3, 750);
INSERT INTO F_VENTES VALUES (10, 10, 10, 2, 1100);
INSERT INTO F_VENTES VALUES (11, 11, 11, 5, 650);
INSERT INTO F_VENTES VALUES (12, 12, 12, 4, 560);
INSERT INTO F_VENTES VALUES (13, 13, 13, 1, 400);
INSERT INTO F_VENTES VALUES (14, 14, 14, 2, 1300);
INSERT INTO F_VENTES VALUES (15, 15, 15, 3, 900);
INSERT INTO F_VENTES VALUES (16, 16, 16, 1, 1800);
INSERT INTO F_VENTES VALUES (17, 17, 17, 5, 3500);
INSERT INTO F_VENTES VALUES (18, 18, 18, 6, 1200);
INSERT INTO F_VENTES VALUES (19, 19, 19, 2, 700);
INSERT INTO F_VENTES VALUES (20, 20, 20, 3, 1500);