questions

This commit is contained in:
2025-11-14 16:26:31 +01:00
parent 8299b33fce
commit 0b983d2cad

View File

@@ -691,13 +691,18 @@ insert into exchange_rate values
('USD', '2025-03-03', 1.0465); ('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 nexiste, la ligne ne doit pas apparaître. Si aucun taux du jour nexiste, 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 dafficher **tous les titulaires** (banque, personne ou entreprise) sous une forme unifiée. Créer une vue *holder_details* permettant dafficher **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 *COMPANY* : *name*
* pour un titulaire de type *BANK* : *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 : Créer une vue *account_summary* affichant :
@@ -721,7 +726,7 @@ Créer une vue *account_summary* affichant :
* le solde * le solde
* le nombre de titulaires du compte * 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 : 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**. 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 : 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 lopération** (bonus : fenêtre analytique) * le solde du compte **après lopération** (bonus : fenêtre analytique)
## 7. Vue : solde converti en EUR
## **6. Vue : solde converti en EUR**
Créer une vue *account_balance_eur* pour afficher : 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 * taux de change correspondant à la date du jour
* solde converti en EUR (solde × taux) * 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 : 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) * montant total de la transaction (somme des opérations)
* liste des comptes concernés (optionnel : concaténation) * 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. 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`. > 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 : Créer une vue *person_age* indiquant :
@@ -781,7 +784,7 @@ Créer une vue *person_age* indiquant :
* date de naissance * date de naissance
* âge en années (utiliser `age()`) * âge en années (utiliser `age()`)
## **10. Vue : répartition des parts dun compte** ## 11. Vue : répartition des parts dun compte
Créer une vue *account_shares* affichant : 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. > 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 : 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 : * somme des soldes de tous ses comptes (pondérée par `share`), calcul :
`total = SUM(share × balance)` `total = SUM(share × balance)`
## **12. Vue : opérations dun compte en sens unique** ## 13. Vue : opérations dun compte en sens unique
Créer une vue *account_debits* listant uniquement les opérations de type DEBIT, avec : 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). Créer une seconde vue *account_credits* (montants positifs).
## **13. Vue : dernier taux connu pour chaque devise** ## 14. Vue : liste des entreprises avec ancienneté
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é**
Créer une vue *company_age* indiquant : Créer une vue *company_age* indiquant :
@@ -825,7 +824,7 @@ Créer une vue *company_age* indiquant :
* registration_number * registration_number
* age de lentreprise en années (`age(current_date, created_at)`) * age de lentreprise 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 : Créer une vue *bank_overview* qui croise :