Exemple : on veut savoir quelles espèces rapportent le plus, année après année. Comme c'est une question importante pour le
développement de l'élevage, et qu'elle reviendra souvent, on crée une vue, que l'on pourra interroger facilement.
Code : SQL
CREATE OR REPLACE VIEW V_Revenus_annee_espece
AS SELECT YEAR(date_reservation) AS annee, Espece.id AS espece_id,
SUM(Adoption.prix) AS somme, COUNT(Adoption.animal_id) AS nb
FROM Adoption
INNER JOIN Animal ON Animal.id = Adoption.animal_id
INNER JOIN Espece ON Animal.espece_id = Espece.id
GROUP BY annee, Espece.id;
Avec des requêtes toutes simples, on peut maintenant obtenir des informations résultant de requêtes complexes, par exemple :
1. Les revenus obtenus par année
Code : SQL
SELECT annee, SUM(somme) AS total
FROM V_Revenus_annee_espece
GROUP BY annee;
annee total
2007 2315.00
2008 3565.00
2009 400.00
2010 340.00
2011 1755.00
2012 3045.00
2. Les revenus obtenus pour chaque espèce, toutes années confondues
Code : SQL
SELECT Espece.nom_courant AS espece, SUM(somme) AS total
FROM V_Revenus_annee_espece
INNER JOIN Espece ON V_Revenus_annee_espece.espece_id = Espece.id
GROUP BY espece;
espece
total
Chat
6480.00
Chien
2400.00
Perroquet amazone 2100.00
Rat brun
20.00
Tortue d'Hermann 420.00
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
340/414
www.openclassrooms.com
Précédent

- 340/413

Suivant