Ex1
This commit is contained in:
42
banque.md
42
banque.md
@@ -667,9 +667,37 @@ create table operation (
|
|||||||
|
|
||||||
# Séance 3 : Exploitation des données
|
# Séance 3 : Exploitation des données
|
||||||
|
|
||||||
Créer des vues pour
|
Ajouter des données
|
||||||
|
|
||||||
## **1. Vue : liste des titulaires détaillés**
|
```sql
|
||||||
|
truncate table holder;
|
||||||
|
truncate table account;
|
||||||
|
|
||||||
|
call add_bank('Banque de l''Est');
|
||||||
|
insert into currency values ('EUR'),('YEN'),('USD');
|
||||||
|
|
||||||
|
call add_account(1,'EUR');
|
||||||
|
call add_account(1,'YEN');
|
||||||
|
call add_account(1,'USD');
|
||||||
|
|
||||||
|
update account set balance = 100000 where id = 1;
|
||||||
|
update account set balance = 50000 where id = 2;
|
||||||
|
update account set balance = 200000 where id = 3;
|
||||||
|
|
||||||
|
insert into exchange_rate values
|
||||||
|
('EUR', '1999-01-01', 1),
|
||||||
|
('USD', '2025-01-02', 1.0321),
|
||||||
|
('USD', '2025-02-03', 1.0274),
|
||||||
|
('USD', '2025-03-03', 1.0465);
|
||||||
|
```
|
||||||
|
|
||||||
|
## 1. Vue : taux de change du jour
|
||||||
|
|
||||||
|
Créer une vue *today_exchange_rates* qui affiche pour **chaque devise** son taux de change du jour présent dans `exchange_rate`.
|
||||||
|
|
||||||
|
Si aucun taux du jour n’existe, la ligne ne doit pas apparaître.
|
||||||
|
|
||||||
|
## **2. Vue : liste des titulaires détaillés**
|
||||||
|
|
||||||
Créer une vue *holder_details* permettant d’afficher **tous les titulaires** (banque, personne ou entreprise) sous une forme unifiée.
|
Créer une vue *holder_details* permettant d’afficher **tous les titulaires** (banque, personne ou entreprise) sous une forme unifiée.
|
||||||
|
|
||||||
@@ -683,7 +711,7 @@ La vue doit contenir :
|
|||||||
* pour un titulaire de type *COMPANY* : *name*
|
* pour un titulaire de type *COMPANY* : *name*
|
||||||
* pour un titulaire de type *BANK* : *name*
|
* pour un titulaire de type *BANK* : *name*
|
||||||
|
|
||||||
## **2. Vue : liste des comptes avec devise et solde**
|
## **3. Vue : liste des comptes avec devise et solde**
|
||||||
|
|
||||||
Créer une vue *account_summary* affichant :
|
Créer une vue *account_summary* affichant :
|
||||||
|
|
||||||
@@ -693,7 +721,7 @@ Créer une vue *account_summary* affichant :
|
|||||||
* le solde
|
* le solde
|
||||||
* le nombre de titulaires du compte
|
* le nombre de titulaires du compte
|
||||||
|
|
||||||
## **3. Vue : comptes par titulaire**
|
## **4. Vue : comptes par titulaire**
|
||||||
|
|
||||||
Créer une vue *holder_accounts* permettant de lister les comptes détenus par chaque titulaire, avec :
|
Créer une vue *holder_accounts* permettant de lister les comptes détenus par chaque titulaire, avec :
|
||||||
|
|
||||||
@@ -705,7 +733,7 @@ Créer une vue *holder_accounts* permettant de lister les comptes détenus par c
|
|||||||
|
|
||||||
La vue doit fusionner les informations venant de **holder, person et company**.
|
La vue doit fusionner les informations venant de **holder, person et company**.
|
||||||
|
|
||||||
## **4. Vue : opérations enrichies**
|
## **5. Vue : opérations enrichies**
|
||||||
|
|
||||||
Créer une vue *operation_details* affichant les opérations avec :
|
Créer une vue *operation_details* affichant les opérations avec :
|
||||||
|
|
||||||
@@ -717,11 +745,7 @@ Créer une vue *operation_details* affichant les opérations avec :
|
|||||||
* le solde du compte **après l’opération** (bonus : fenêtre analytique)
|
* le solde du compte **après l’opération** (bonus : fenêtre analytique)
|
||||||
|
|
||||||
|
|
||||||
## **5. Vue : taux de change du jour**
|
|
||||||
|
|
||||||
Créer une vue *today_exchange_rates* qui affiche pour **chaque devise** son taux de change du jour présent dans `exchange_rate`.
|
|
||||||
|
|
||||||
Si aucun taux du jour n’existe, la ligne ne doit pas apparaître.
|
|
||||||
|
|
||||||
## **6. Vue : solde converti en EUR**
|
## **6. Vue : solde converti en EUR**
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ update account set balance = 100000 where id = 1;
|
|||||||
update account set balance = 50000 where id = 2;
|
update account set balance = 50000 where id = 2;
|
||||||
update account set balance = 200000 where id = 3;
|
update account set balance = 200000 where id = 3;
|
||||||
|
|
||||||
insert into exchange_rate values
|
insert into exchange_rate values
|
||||||
('EUR', '1999-01-01', 1),
|
('EUR', '1999-01-01', 1),
|
||||||
('USD', '2025-01-02', 1.0321),
|
('USD', '2025-01-02', 1.0321),
|
||||||
('USD', '2025-02-03', 1.0274),
|
('USD', '2025-02-03', 1.0274),
|
||||||
@@ -24,7 +24,7 @@ call add_person('Émilie','Jolie', '1992-01-01', array['EUR']);
|
|||||||
call add_person('Soufiane','Mamoun', '1993-01-01',array['EUR', 'EUR']);
|
call add_person('Soufiane','Mamoun', '1993-01-01',array['EUR', 'EUR']);
|
||||||
call add_person('Élodie','Bérengier', '1991-01-01',array['EUR', 'EUR']);
|
call add_person('Élodie','Bérengier', '1991-01-01',array['EUR', 'EUR']);
|
||||||
call add_person('Eugène','Makiadi', '1994-01-01', array['EUR']);
|
call add_person('Eugène','Makiadi', '1994-01-01', array['EUR']);
|
||||||
call add_person('Julie','Thomis', '1980-01-01',array['EUR', 'EUR', 'EUR']);
|
call add_person('Julie','Thomis', '1980-01-01',array['EUR', 'USD', 'EUR']);
|
||||||
call add_person('Marc','Aurèle', '1981-01-01',array['USD', 'EUR', 'EUR']);
|
call add_person('Marc','Aurèle', '1981-01-01',array['USD', 'EUR', 'EUR']);
|
||||||
call add_person('Albert','Unepierre', '1982-01-01', array['EUR']);
|
call add_person('Albert','Unepierre', '1982-01-01', array['EUR']);
|
||||||
call add_person('Lucas','George', '1978-01-01', array['EUR']);
|
call add_person('Lucas','George', '1978-01-01', array['EUR']);
|
||||||
@@ -112,14 +112,14 @@ update account set balance = 1500 where id = 62;
|
|||||||
update account set balance = 1500 where id = 26;
|
update account set balance = 1500 where id = 26;
|
||||||
|
|
||||||
with addholder as (
|
with addholder as (
|
||||||
insert into holder (type) values ('COMPANY') returning id )
|
insert into holder (type) values ('COMPANY') returning id
|
||||||
insert into company (id, name, registration_number, created_at)
|
)
|
||||||
select
|
insert into company (id, name, registration_number, created_at)
|
||||||
addholder.id,
|
select
|
||||||
|
addholder.id,
|
||||||
'Boulangerie de Valorgue', 'FR19803269968', '2014-08-19'
|
'Boulangerie de Valorgue', 'FR19803269968', '2014-08-19'
|
||||||
from addholder;
|
from addholder;
|
||||||
|
|
||||||
|
|
||||||
call transfer(45,66,239,'2025-01-05');
|
call transfer(45,66,239,'2025-01-05');
|
||||||
call transfer(50,43,128,'2025-03-02');
|
call transfer(50,43,128,'2025-03-02');
|
||||||
call transfer(34,76,185,'2025-01-21');
|
call transfer(34,76,185,'2025-01-21');
|
||||||
|
|||||||
Reference in New Issue
Block a user