Bonjour à tous et toutes !
J'ai une requête à mettre en place et je n'ai aucune idée de comment m'y prendre (exemple via Excel en bas du post):
J'ai une table "Facturation" composé de plusieurs champs :
- idFacturation : int
- date: datetime
- montant : float
- cesure1 : float
- cesure2 : float
- cesure3 : float
- cesure4 : float
Ce qui me pose problème sont les césure : en gros ce sont UN pourcentage : le total des 4 est inférieur ou égal à 100, et elle représente la répartition du montant sur plusieurs années
Je souhaite avec une requête grouper le montant par année (dépendant de la date) en tenant compte de ces pourcentage.
Voilà un exemple :
La difficulté c'est que les années sur lesquelles le montant est répartit dépendent de l'année de la date :
- Pour les factures 1 et 2, l'année est 2018 donc cesure1 représente le pourcentage du montant à mettre dans 2017, cesure2 représente 2019, cesure3 représente 2020, cesure4 représente 2021
- Pour les factures 3, 4 et 5, l'année de la facture 2017, donc cesure1 représente le pourcentage du montant à mettre dans 2017, cesure2 représente 2018, cesure3 représente 2019, cesure4 représente 2020
Dans l'exemple :
- 2017 correspond à : (0% de 650) + 20% de 15000 + 100% de 4850
- 2018 correspond à : 50% de 1500 + 50% de 2000 + 25% de 650 + 25% de 15000 + (0% de 4850)
- 2019 correspond à : 25% de 1500 + 50% de 2000 + 75% de 650 + 20% de 15000 + (0% de 4850)
- 2020 correspond à : 25% de 1500 + (0% de 2000) + (0% de 650) + 35% de 1500 + (0% de 4850)
- 2021 correspond à : (0% de 1500) + (0% de 2000)
Nbr correspond au nombre de lignes de Facturation utiles au calcul (supérieur à 0)
Je sais que je vais avoir besoin d'un GROUP BY Year(date), mais je n'ai aucune idée de comment m'y prendre pour faire cette requête
Quelqu'un peut-il m'aider svp ?
Partager