{Access 2000} Problème de requète sql

Résolu/Fermé
Gwendo69 Messages postés 147 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 28 juin 2013 - 30 juin 2009 à 10:03
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 - 9 juil. 2009 à 17:32
Bonjour,

Alors, voici mon problème.
Je dois calculer les frais d'un véhicule et pour ça j'ai besoin de connaître les "consommations".

Chaque mois un conducteur inscrit le nombre de kilomètres parcourus et le nombre de litres.
Il faut que je fasse cette formule: nombre de litres X 100 / les kilomètres.
Le résultat me permet de vérifier que les données entrées sont correctes.

Seul problème, parfois l'utilisateur peut faire plusieurs pleins. Il inscrit donc plusieurs fois le nombre de litres. Il faudrait que je puisse remplacer le nombre de litres par la moyenne du nombre de litres.
ça donne ça : moyenne du nombre de litres X 100 / les kilomètres.

Mais je ne sais pas du tout comment écrire la requète (SELECT) lorsque j'ai besoin de récupérer ce résultat.
Ma table: FRAIS (code_frais, nb_litres, km)

Quelqu'un aurait une idée, svp? Merci d'avance.
Gwendo.

7 réponses

Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
30 juin 2009 à 14:08
Si ce n'est "que" cette formule c'est assez trivial.
select avg(nb_litre)*100 / km from FRAIS

km = nombre de kilomètres.

Ceci dit, le problème reste étrange pour moi :

1) Le conducteur marque-t-il à chaque fois le kilométrage correspondant au plein effectué ?

Si oui, cette formule n'a plus de sens et la requête n'est pas faisable.
En effet par quel kilométrage faudrait-il diviser ? Celui du 1er plein, le 2ème, ...?

2) Le conducteur marque les différents pleins mais en notant à chaque fois le même
kilométrage global du mois.


La formule donné plus haut fonctionne. En réalité dans cette formulé, "km" correspond à la première occurence
de "km" mais puisqu'elles sont toutes pareilles pour ce conducteur et ce véhicule, ça suffit.

1
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
30 juin 2009 à 11:21
Bonjour Gwendo69,

pourrais-tu apporter un peu plus de précisions, notamment :

1) code_frais est-il toujours le même pour un véhicule ?
(et ce, quel que soit le conducteur).

2) La moyenne que tu veux calculer, ça ne serait pas plutôt la consommation moyenne ?
Dans ce cas, c'est plutôt moyenne (nb_litre * 100 / km) calculée sur
l'ensemble des enregistrements correspondant au même code_frais [sous réserve que tu aies
répondu "oui" à la question 1).]

0
Gwendo69 Messages postés 147 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 28 juin 2013 13
30 juin 2009 à 11:37
Bonjour,

Le code_frais est juste la clé primaire de la table. C'est un numéro automatique qui n'a aucune importance pour cette requère, à part pour la jointure avec la table vehicule. un vehicule peut avoir plusieurs frais et un frais correspond à un seul vehicule.

Non, c'est bien cette formule-là: ((moyenne nb_litres) X 100) / km.

J'ai re-demandé ce matin à ma collègue et m'a dit qu'elle travaille toujours avec ce résultat (si il dépasse un seuil, ça veut dire que le conducteur lui a inscrit n'importe quoi et qu'il y a une erreur si j'ai tout compris).

Le select serait tellement plus simple si c'était comme tu l'as dis. Malheureusement pour moi, c'est pas le cas, du coup je bloque complètement sur cette requète.
0
Gwendo69 Messages postés 147 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 28 juin 2013 13
30 juin 2009 à 16:52
Merci,

En effet, tu parles d'un problème que je rencontre aussi.
Quand on a fait le cahier des charges, pas une seule fois on ne m'a dit que nb_litres pouvait être inscrit plusieurs fois. Pour moi, on faisait la somme des litres chaque fin de mois comme pour les kms, point barre. Je viens juste d'apprendre que non.

"1) Le conducteur marque-t-il à chaque fois le kilométrage correspondant au plein effectué ?"
Non le conducteur n'inscrit qu'une fois le total des kms à la fin du mois, mais peut inscrire plusieurs fois le nb_litres.

"2) Le conducteur marque les différents pleins mais en notant à chaque fois le même
kilométrage global du mois."

C'est une possibilité, mais ça risque de faire perdre du temps (recherche des km qu'on avait déjà inscrit)

"La formule donné plus haut fonctionne. En réalité dans cette formule, "km" correspond à la première occurence de "km" mais puisqu'elles sont toutes pareilles pour ce conducteur et ce véhicule, ça suffit."
ça ne marche pas si on l'inscrit qu'une fois?

Malheuresement, je pense que mon problème est plus important que je le pensais (plusieurs nb_litres possible avec 1 seul km).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
30 juin 2009 à 17:39
J'avoue que ça devient inutilement compliqué ton histoire.

Il faudrait que tu donnes la structure de toutes les tables impliquées dans ta requête et reformuler plus (très ?) précisément celle-ci.

Si les conducteurs peuvent rentrer plusieurs fois le nombre de litres, où est sauvegardée cette information ? (Dans quelle table). Quel enregistrement est créé à chaque fois ? (Donner la valeur de tous les champs sur un exemple). Tu devrais en principe y voir plus clair si tu comprends le principe de la chose.


"La formule donné plus haut fonctionne. En réalité dans cette formule, "km" correspond à la première occurence de "km" mais puisqu'elles sont toutes pareilles pour ce conducteur et ce véhicule, ça suffit."

ça ne marche pas si on l'inscrit qu'une fois ?
Un moyen simple de le savoir est de tester.



"La connaissance s'acquiert par l'expérience[...]"


Bon courage.
0
Gwendo69 Messages postés 147 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 28 juin 2013 13
2 juil. 2009 à 07:20
Merci, merci.
Je ne suis pas à l'entreprise avant lundi. Je retravaillerai là-dessus à ce moment-là.
Encore désolée pour le dérangement.
0
Gwendo69 Messages postés 147 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 28 juin 2013 13
9 juil. 2009 à 09:14
Merci, problème résolu.
En faisant pleins de tests et en m'appuyant sur tes requêtes, ça a fini par marcher.
Merci encore.
0
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
9 juil. 2009 à 17:32
Content pour toi.

Bonne continuation.
0