Contexte : la *** a un parc de 50 vehicules situés dans différentes villes. La *** souhaiterais un site afin de suivre leurs interventions et leurs consomations. mais aussi des statistiques d'aide à la prise de décision :
je souhaiterais pouvoir calculer le cout des consomations et des interventions des vehicules de chacunes des villes afin d'emettre un graphique ou l'on pourais voir la ville qui dépense le plus etc...
Ma vue pour le calcul des interventions sur les vehicules organisés par ville :
Ma vue pour le calcul des consomations sur les vehicules organisés par ville :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE VIEW dbo.vueClassementVillePlusCherIntervention AS SELECT TOP 100 PERCENT dbo.ville.vil_libelle, SUM(dbo.commande.cmd_montant_ttc) AS somInt FROM dbo.ville INNER JOIN dbo.vehicule ON dbo.ville.vil_id = dbo.vehicule.veh_vil_id INNER JOIN dbo.Interventions ON dbo.vehicule.veh_immat = dbo.Interventions.int_veh_immat INNER JOIN dbo.commande ON dbo.Interventions.int_id = dbo.commande.cmd_int_id GROUP BY dbo.ville.vil_libelle ORDER BY somInt DESC
Ma vue pour le calcul des consomations sur les vehicules organisés par ville :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE VIEW dbo.vueClassementVillePlusCherConso AS SELECT dbo.ville.vil_libelle, SUM(dbo.consomation.conso_montant) AS somConso FROM dbo.ville INNER JOIN dbo.vehicule ON dbo.ville.vil_id = dbo.vehicule.veh_vil_id INNER JOIN dbo.consomation ON dbo.vehicule.veh_immat = dbo.consomation.conso_veh_immat GROUP BY dbo.ville.vil_libelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE VIEW dbo.vueClassementVillePlusCher AS SELECT TOP 100 PERCENT dbo.vueClassementVillePlusCherIntervention.vil_libelle, ( dbo.vueClassementVillePlusCherIntervention.somInt + dbo.vueClassementVillePlusCherConsommation.somConso) AS somCout FROM dbo.vueClassementVillePlusCherIntervention, dbo.vueClassementVillePlusCherConsommation ORDER BY somCout DESC
Probleme : mes villes sont en double (normal il n'y a pas de group by) donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE VIEW dbo.vueClassementVillePlusCher AS SELECT TOP 100 PERCENT dbo.vueClassementVillePlusCherIntervention.vil_libelle, ( dbo.vueClassementVillePlusCherIntervention.somInt + dbo.vueClassementVillePlusCherConsommation.somConso) AS somCout FROM dbo.vueClassementVillePlusCherIntervention, dbo.vueClassementVillePlusCherConsommation group by dbo.vueClassementVillePlusCherIntervention.vil_libelle ORDER BY somCout DESCProbleme : MICROSOFT SQL-DMO SQLState:42000
Erreur 8120 la colonne somInt n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause du GROUP BY. la colonne somConso n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause du GROUP BY.
Merci pour la lecture et l'aide
cdlt
Partager