19-03-2012, 01:36 PM
En une requête, je pense que ce sera difficile car tu as une notion de précédence (il faut commencer par le niveau le plus bas d'imposition puis remonter). Attention, je dis difficile mais pas impossible.
Cependant, à vue de nez, vu que ça fonctionne avec un système de tours, le plus simple me semble de passer par des tables temporaires. Je ne connais pas l'architecture exacte de tes tables mais en travaillant principalement au niveau du moteur SQL, tu vas sans doutes gagner en performance et en temps.
Tu peux par exemple
- Faire une première requête pour consolider toutes tes données dans une table
- Faire une ou plusieurs requêtes en fonction de ta structure pour mettre à jour les impôts/revenus sur chaque niveau de profondeur
- Une dernière requête pour mettre tout cela à jour/faire un rapport.
J'avais donné quelques pistes sur la récursivité sur ce sujet
Cependant, à vue de nez, vu que ça fonctionne avec un système de tours, le plus simple me semble de passer par des tables temporaires. Je ne connais pas l'architecture exacte de tes tables mais en travaillant principalement au niveau du moteur SQL, tu vas sans doutes gagner en performance et en temps.
Tu peux par exemple
- Faire une première requête pour consolider toutes tes données dans une table
- Faire une ou plusieurs requêtes en fonction de ta structure pour mettre à jour les impôts/revenus sur chaque niveau de profondeur
- Une dernière requête pour mettre tout cela à jour/faire un rapport.
J'avais donné quelques pistes sur la récursivité sur ce sujet
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC