From 0b983d2cad354e5ed997036d30daec4f37e67c74 Mon Sep 17 00:00:00 2001 From: medina5 Date: Fri, 14 Nov 2025 16:26:31 +0100 Subject: [PATCH] questions --- banque.md | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/banque.md b/banque.md index 54d4c05..1a46eb1 100644 --- a/banque.md +++ b/banque.md @@ -691,13 +691,18 @@ insert into exchange_rate values ('USD', '2025-03-03', 1.0465); ``` -## 1. Vue : taux de change du jour +## 1. Vue : taux de change de la veille -Créer une vue *today_exchange_rates* qui affiche pour **chaque devise** son taux de change du jour présent dans `exchange_rate`. +Créer une vue *yesterday_exchange_rates* qui affiche pour **chaque devise** son taux de change de la veille 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** + +## 2. Fonction : dernier taux connu pour une devise et une date données + +Créer une fonction *latest_exchange_rate* qui donne, pour une devise, son taux de change le plus récent : + +## 3. Vue : liste détaillées des titulaires Créer une vue *holder_details* permettant d’afficher **tous les titulaires** (banque, personne ou entreprise) sous une forme unifiée. @@ -711,7 +716,7 @@ La vue doit contenir : * pour un titulaire de type *COMPANY* : *name* * pour un titulaire de type *BANK* : *name* -## **3. Vue : liste des comptes avec devise et solde** +## 4. Vue : liste des comptes avec devise et solde Créer une vue *account_summary* affichant : @@ -721,7 +726,7 @@ Créer une vue *account_summary* affichant : * le solde * le nombre de titulaires du compte -## **4. Vue : comptes par titulaire** +## 5. Vue : comptes par titulaire Créer une vue *holder_accounts* permettant de lister les comptes détenus par chaque titulaire, avec : @@ -733,7 +738,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**. -## **5. Vue : opérations enrichies** +## 6. Vue : opérations enrichies Créer une vue *operation_details* affichant les opérations avec : @@ -745,9 +750,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) - - -## **6. Vue : solde converti en EUR** +## 7. Vue : solde converti en EUR Créer une vue *account_balance_eur* pour afficher : @@ -757,7 +760,7 @@ Créer une vue *account_balance_eur* pour afficher : * taux de change correspondant à la date du jour * solde converti en EUR (solde × taux) -## **7. Vue : transactions complètes** +## 8. Vue : transactions complètes Créer une vue *transaction_summary* affichant un regroupement par transaction : @@ -766,13 +769,13 @@ Créer une vue *transaction_summary* affichant un regroupement par transaction : * montant total de la transaction (somme des opérations) * liste des comptes concernés (optionnel : concaténation) -## **8. Vue : comptes en découvert imminent** +## 9. Vue : comptes en découvert imminent Créer une vue *accounts_at_risk* listant les comptes dont le solde est inférieur à 50 (dans leur devise), ou qui auraient un solde négatif s'ils effectuaient un débit supplémentaire de 20. > Vérification simple : `balance - 20 < 0 OR balance < 50`. -## **9. Vue : âge des personnes** +## 10. Vue : âge des personnes Créer une vue *person_age* indiquant : @@ -781,7 +784,7 @@ Créer une vue *person_age* indiquant : * date de naissance * âge en années (utiliser `age()`) -## **10. Vue : répartition des parts d’un compte** +## 11. Vue : répartition des parts d’un compte Créer une vue *account_shares* affichant : @@ -792,7 +795,7 @@ Créer une vue *account_shares* affichant : > Objectif : vérifier que les parts des comptes joints sont bien réparties. -## **11. Vue : solde par titulaire** +## 12. Vue : solde par titulaire Créer une vue *holder_total_balance* indiquant pour chaque titulaire : @@ -802,7 +805,7 @@ Créer une vue *holder_total_balance* indiquant pour chaque titulaire : * somme des soldes de tous ses comptes (pondérée par `share`), calcul : `total = SUM(share × balance)` -## **12. Vue : opérations d’un compte en sens unique** +## 13. Vue : opérations d’un compte en sens unique Créer une vue *account_debits* listant uniquement les opérations de type DEBIT, avec : @@ -812,11 +815,7 @@ Créer une vue *account_debits* listant uniquement les opérations de type DEBIT Créer une seconde vue *account_credits* (montants positifs). -## **13. Vue : dernier taux connu pour chaque devise** - -Créer une vue *latest_exchange_rate* qui donne, pour chaque devise, son taux de change le plus récent : - -## **14. Vue : liste des entreprises avec ancienneté** +## 14. Vue : liste des entreprises avec ancienneté Créer une vue *company_age* indiquant : @@ -825,7 +824,7 @@ Créer une vue *company_age* indiquant : * registration_number * age de l’entreprise en années (`age(current_date, created_at)`) -## **15. Vue : recapitulatif bancaire complet** +## 15. Vue : recapitulatif bancaire complet Créer une vue *bank_overview* qui croise :