Bonjour à tous,
je suis actuellement en stage et j'ai besoin de réaliser un calcul en base 100 sur des données. Mon maître de stage souhaite optimiser au mieux l'application et donc traiter cela directement en sql.
Voici un exemple de données récupérées:
Qui va me renvoyer par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE VIEW graphe_1 AS SELECT nom_territoire, annee, statistique FROM "STAT_ANNEE" SA, "INDICATEUR" I, "FICHIER" F, "DONNEE" D, "TERRITOIRE" T WHERE F.id_fichier=D.id_fichier AND D.id_donnee=SA.id_donnee AND I.id_indicateur=F.id_indicateur AND SA.id_territoire=T.id_territoire AND D.nom_donnee LIKE 'EN10 Consommation totale d''énergie par le résidentiel%'
"CENTRE";1990;2379
"CENTRE";1992;2808
"CENTRE";1995;2613
"CENTRE";1997;2747
"CENTRE";1999;2888
"CENTRE";2002;2758
Le calcul se fait ainsi:
- je choisi l'année de base, 2002, qui est donc égal a 100
- j'effectue le calcul suivant pour toutes les autres années:
1990 : 2379/2758*100 = 86.26
1992 : 2808/2758*100 = 101.81
1995 : 2613/2758*100 = 94.74
etc...
Au final, je souhaite un résultat du genre:
annee;base_100
1990;86.26
1992;101.81
1995;94.74
2002;100
Déjà, est-ce possible de réaliser ce genre de calcul en SQL?
Si oui, je me pose la question de savoir avec quelle méthode, une procédure, une fonction, un curseur (sachant que c'est lent), peut-être même une vue?
Je vous remercie d'avance pour vos réponses.
Partager